-3

そのため、テーブル users のパスワードを変更しようとしています。そのために、次の PHP コードを使用していますが、更新されていません。

<?php
session_start();
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="bloodbank"; // Database name 
$tbl_name="users"; // Table name 

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username ,password and newpassword sent from form 
$username=$_POST['username']; 
$password=$_POST['password']; 
$newpassword=$_POST['newpassword']; 
$sql="UPDATE $tbl_name SET password='$newpassword' WHERE username='$username' and password='$password'";

?>

次に、このコードを使用しようとしましたが、「正常に更新されました」と表示されていますが、実際にはデータベースで更新されていません。エラーの場所を教えてください。

<?php
session_start();
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="bloodbank"; // Database name 
$tbl_name="users"; // Table name 

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username,password and newpassword sent from form 
$username=$_POST['username']; 
$password=$_POST['password']; 
$newpassword=$_POST['newpassword'];
$sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$password'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

if($count==1)
{
$mysql="UPDATE $tbl_name SET password='$newpassword'";
echo "Updated Successfully";
}
else
{
echo "Wrong password or Username";
}
?>
4

4 に答える 4

2

変化する:

$sql="UPDATE $tbl_name SET password='$newpassword' WHERE username='$username' and password='$password'";

if($count==1)
{
$mysql="UPDATE $tbl_name SET password='$newpassword'";
echo "Updated Successfully";
}

に:

$sql="UPDATE $tbl_name SET password='$newpassword' WHERE username='$username' and password='$password'";
$result=mysql_query($sql);

if($count==1)
{
$mysql="UPDATE $tbl_name SET password='$newpassword'";
$result2=mysql_query($mysql);
echo "Updated Successfully";
}

更新されなかった理由は、$sqlクエリが実行されていなかったためです。

于 2013-05-31T10:18:01.983 に答える