我想用mysql update更新一个表名的演示,但它不工作。 这里是我的PHP代码..PHP MySQL的更新查询不工作
PHP MYSQL编码:
$sql1 = 'UPDATE demo
SET name="$name", dob="$dob"
WHERE mid = "$id" AND email = "$email" ';
$result1=mysql_query($sql1);
我想用mysql update更新一个表名的演示,但它不工作。 这里是我的PHP代码..PHP MySQL的更新查询不工作
PHP MYSQL编码:
$sql1 = 'UPDATE demo
SET name="$name", dob="$dob"
WHERE mid = "$id" AND email = "$email" ';
$result1=mysql_query($sql1);
$sql1 = 'UPDATE table_name
SET name="'. $name .'", dob="'. $dob '."
WHERE mid = "'. $id .'" AND email = "'. $email .'" ';
你需要躲避”。如果你想有改变它周围,使“是外qouation标记和'是内它会工作
换句话说,OP需要RTFM:http://php.net/manual/en/language.types.string.php –
谢谢你的帮助,但仍然没有工作.. – Nemo
仔细检查一切,中期的$ id必须存在(在同一行)电子邮件正是$电子邮件。也就是说,你可能会尝试将电子邮件字符串上的运算符从等号改为LIKE运算符,如果mid是唯一的话,电子邮件也不是秘密。如果字符集不匹配,则不相等。请参阅mehaase的答案在这里:http://stackoverflow.com/questions/12176824/sql-update-with-like 请注意,mysql_ *函数已弃用 –
你所面临的最大的问题是,你用错了引号。当你只使用双的,它会正常工作。但是,当你设置好的单引号中的代码,它使用的所有变量作为字符串。我将搜索“$ id”而不是$ id代表的值。
正确的代码:
$sql1 = 'UPDATE table_name
SET name= "'.$name.'", dob="'.$dob.'"
WHERE mid = "'.$id.'" AND email = "'.$email.'" ';
$result1=mysql_query($sql1);
我们展示您的变量定义的代码。你会得到什么错误?你做了什么调试? –
添加完整脚本 –
变量在单引号字符串内部没有展开,只有双引号字符串。 – Barmar