我在写PHP代码并遇到查询条件问题。另外如果你可以告诉我如何通过在Mysql中使用Stored Procedure来实现这一点,那将会非常好。
如果用户外键不存在,我的任务是运行INSERT查询。如果用户foreign ke存在于“User_ID”列中,则更新它。
但是在这里我可以在数据库中的'User_ID'列上添加唯一条件。所以数据库不会发生重复的事件。
以下查询显示此错误
您的SQL语法错误;检查对应于你的MySQL服务器版本在3号线INSERT IF EXIST UPDATE使用PHP和存储过程的表
$result=mysql_query("select * from Users",$con);
while($row= mysql_fetch_array($result))
{
$info=getVM($row['Ext'],$ast);
$info[3]=$row['User_ID']; // To insert User_ID from Users table
$query="INSERT INTO VoiceMail (Urgent, New, Old, User_ID)
VALUES ($info[0],$info[1],$info[2],$info[3])
WHEN $info[3] NOT IN (SELECT User_ID FROM VoiceMail)
ELSE UPDATE VoiceMail SET Urgent=$info[0], New=$info[1], Old=$info[2] WHERE User_ID=$info[3]";
if (!mysql_query($query,$con))
{
die('Error: ' . mysql_error());
}
else echo "Database Updated..!";
你是在追求[INSERT ...对重复密钥更新](http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html )? – cmbuckley 2012-03-30 22:38:03
Mysql不支持'INSERT .. ELSE UPDATE ...'。你可以简单地做'INSERT ..在DUPLICATE KEY UPDATE ...'http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html – ajreal 2012-03-30 22:38:15
是的..!但在这里我可以在数据库中的'User_ID'列上添加唯一条件。因此,数据库 – 2012-03-30 22:40:01