为什么mysqli不更新db记录,但它提供了一条成功的消息

cyej8jka  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(306)

为什么mysqli不更新db记录,但它提供了一条成功的消息。当然,将显示以下消息:0条记录已成功更新,并且未对数据库进行任何更改。
我的索引php文件代码:

<?php

include 'connect.php';

$work = $_GET["work"];

if($work == "select"){

$query = "SELECT * FROM login ORDER BY City DESC";
$result = $connect->prepare($query);
$result ->execute();

$out = array();
while ($row = $result->fetch(PDO::FETCH_ASSOC)){
$record = array();
$record["InsID"] = $row["InsID"];

$record["Password"] = $row["Password"];

$record["Name"] = $row["Name"];

$record["City"] = $row["City"];

array_push($out,$record);

}

echo json_encode($out);

} elseif($work  == "update"){

$name2 = $_REQUEST["Ali"];

$code2 = $_REQUEST["4779"];

$city2 = $_REQUEST["teh"];

$pass2 = $_REQUEST["123"];

$query2 = "UPDATE login SET Password='$pass2',Name='$name2',City='$city2' WHERE InsID = '$code2'";

$result2 = $connect->prepare($query2);

$result2 ->execute();

}

?>

我真的不知道我的编码哪里错了。请帮忙。

f4t66c6m

f4t66c6m1#

试试这个代码可能有用

$query2 = "UPDATE login SET Password='$pass2',Name='$name2',City='$city2' WHERE InsID = '$code2';

if(mysqli_affected_rows($connect)==1){

echo "updated successfully";
}
else{
echo "failed";
}
vzgqcmou

vzgqcmou2#

如果我了解你想要达到的目标:
你不必再进去了
您需要使用=而不是where条件中的那样
i、 e.这是您需要的行:

$query2 = "UPDATE login SET Password='$pass2',Name='$name2',City='$city2' WHERE InsID = '$code2';";

另请看尼科哈斯的评论,这是超级正确的!必须提高代码安全性,请参阅:http://php.net/manual/en/security.database.sql-injection.php

nnt7mjpx

nnt7mjpx3#

我不明白你为什么要更新insin和使用 'where InsID like' 另外还有附加的;在查询中
你可以试试

$query2 = "UPDATE login SET Password='$pass2',Name='$name2',City='$city2' WHERE InsID like '$code2'";

重要=首先清除输入数据**

相关问题