gpt4 book ai didi

php mysql更新不存在的记录

转载 作者:可可西里 更新时间:2023-11-01 00:45:33 25 4
gpt4 key购买 nike

我使用这段 php 来插入/更新 mysql 数据库。请在相应行的评论部分查看我的问题。谢谢。

        //Connecting to your database
mysql_connect($hostname, $username, $password) OR DIE ("Unable to connect to database! Please try again later.");
mysql_select_db($dbname);

arr = array();
if (strcasecmp($actionIn, 'insert') == 0) {
$query = "INSERT INTO $usertable (id, fname, lname) VALUES ('$id', '$fname', 'lname'";
$result = mysql_query($query) or die(mysql_error()); //AT THIS STEP, I would get error message if I insert a duplicated id into table, no following json_encode would not print out, that's what I want.
if ($result) {
$arr['inserted'] = 'true';
}
exit(json_encode($arr));
}

if (strcasecmp($actionIn, 'update') == 0) {
$query = "UPDATE $usertable SET id = '$id', fname = '$fname', lname = '$lname' WHERE id = '$id'";
$result = mysql_query($query) or die(mysql_error()); //AT THIS STEP, if I update a non-existent id, I don't get error, and the following steps continue to execute. I want the error info or return me a false.
if ($result) {
$arr['updated'] = 'true';
}
exit(json_encode($arr));
}

我也试过这些,但是 num_rows 和 affected_rows 都返回 0。为什么?

       $row_cnt = $result->num_rows;
printf("Result set has %d rows.\n", $row_cnt);
$aff_cnt = $result->affected_rows;
printf("Result set aff %d rows.\n", $aff_cnt);

感谢您的帮助!

最佳答案

如果 UPDATE 不匹配任何要更新的内容,它将简单地返回。这不是错误。要查明它是否更新了任何内容,请使用 mysql_affected_rows()

注意:mysql_*() 不支持 OOP 形式,因此您应该使用 mysql_affected_rows(),它应该适用于您上面的第二种情况。

这会给你:

if (strcasecmp($actionIn, 'update') == 0) {
$query = "UPDATE $usertable SET id = '$id', fname = '$fname', lname = '$lname' WHERE id = '$id'";
$result = mysql_query($query) or die(mysql_error());
if (mysql_affected_rows() !== 0) {
$arr['updated'] = 'true';
}

旁注:mysql_*() 已弃用并将被删除。对于新代码,您应该使用 mysqliPDO

关于php mysql更新不存在的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19893612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com