Php mySQL Insert如果id存在,则向用户发送错误,我可以使用什么方法?

Php mySQL Insert如果id存在,则向用户发送错误,我可以使用什么方法?,php,mysql,Php,Mysql,我想稍微修改一下我的代码,如果int$itemID不存在,用户应该触发$retvaldie,如果$itemID存在,用户应该继续更新数据库 什么方法最合适 代码: 您应该检查受影响的行数,如下所示: $upd = "UPDATE booking SET userID ='$userID' WHERE itemID ='$itemID'"; $retval = mysql_query($upd, $con); if(!$retval || 0 === mysql_affected_rows()

我想稍微修改一下我的代码,如果int
$itemID
不存在,用户应该触发
$retval
die
,如果
$itemID
存在,用户应该继续更新数据库

什么方法最合适

代码:


您应该检查受影响的行数,如下所示:

$upd = "UPDATE booking SET userID ='$userID' WHERE itemID ='$itemID'";

$retval = mysql_query($upd, $con);

if(!$retval || 0 === mysql_affected_rows()) {
   die('Could not update data: '.mysql_error());
}

echo "Updated data successfully\n";
此外,如评论中所述,您应该使用
mysqli\uu
甚至
PDO
而不是
mysql\u
,因为后者已经严重过时。

您可以使用

PHP用户手册中的使用示例:

/*更新记录*/
mysql_查询(“updatemytable SET used=1,其中id<10”);
printf(“更新的记录:%d\n”,mysql_受影响的_行());
mysql_查询(“提交”);
请注意从php 5.5.0开始,
mysql.*
方法将被弃用。或者你可以使用

这个怎么样

$upd = "UPDATE booking SET userID ='$userID' WHERE itemID ='$itemID'";

if( isset($itemID) && $retval = mysql_query($upd, $con) ){
    echo "Updated data successfully\n";
}
else {
    die('Could not update data: '.mysql_error());
}
(是的,谨慎地更新到mysqli_*)

试试这个

if(isset($ItemId))
{
    $upd = "UPDATE booking SET userID ='$userID' WHERE itemID ='$itemID'";
    $retval = mysql_query($upd, $con);
    if(!$retval){
       die('Could not update data: '.mysql_error());
       } 
    echo "Updated data successfully\n";
}
else
{
    exit();
}

您需要检查
empty()


你能把这个问题说得更清楚些吗?我不明白您是要检查变量是否存在,还是要检查具有该id的用户是否存在

如果您要检查用户是否存在,我认为您应该执行SELECT查询以查找具有该ID的用户,并使用mysql_num_rows()计算结果,这样您可以在尝试执行更新查询之前发现问题。
注意:正如阿米尔在他的评论中所说,mysql_*在PHP中会(或碰巧已经)贬值,并将在将来的某个版本中删除。尝试查看mysqli以获得轻松升级,或者查看PDO以获得更高级的功能。

这里有问题吗?您应该切换到
mysqli
函数,因为
mysql
已被弃用。我发现我不太清楚,文本正在编辑。是的,我将在函数运行时更改PDO的代码correctly@user3751216完美的我提供了一个mysql受影响的行数()示例,它返回受影响行数:)
$upd = "UPDATE booking SET userID ='$userID' WHERE itemID ='$itemID'";

if( isset($itemID) && $retval = mysql_query($upd, $con) ){
    echo "Updated data successfully\n";
}
else {
    die('Could not update data: '.mysql_error());
}
if(isset($ItemId))
{
    $upd = "UPDATE booking SET userID ='$userID' WHERE itemID ='$itemID'";
    $retval = mysql_query($upd, $con);
    if(!$retval){
       die('Could not update data: '.mysql_error());
       } 
    echo "Updated data successfully\n";
}
else
{
    exit();
}
if(!empty($itemID)) {
 $upd = "UPDATE booking SET userID ='$userID' WHERE itemID ='$itemID'";
 $retval = mysql_query($upd, $con);
 if(!$retval){
   die('Could not update data: '.mysql_error());
   } 
 echo "Updated data successfully\n";
}
else {
  echo "Item id not exist\n";    
}