Php mySQL Insert如果id存在,则向用户发送错误,我可以使用什么方法?
我想稍微修改一下我的代码,如果intPhp 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()
$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";
}