Php PDO MYSQL更新不工作
我在获取正确的sql查询以更新用户配置文件时遇到问题。我使用(基本上)相同的查询来插入数据,它工作正常(只是在执行数组中没有WHERE id=clientid,也没有clientid)。下面的查询不会更新数据库中的任何数据 我测试并确保所有的变量都被发布了,而且它们都被发布了。作为旁注,这个查询对sql注入安全吗Php PDO MYSQL更新不工作,php,mysql,pdo,Php,Mysql,Pdo,我在获取正确的sql查询以更新用户配置文件时遇到问题。我使用(基本上)相同的查询来插入数据,它工作正常(只是在执行数组中没有WHERE id=clientid,也没有clientid)。下面的查询不会更新数据库中的任何数据 我测试并确保所有的变量都被发布了,而且它们都被发布了。作为旁注,这个查询对sql注入安全吗 $conn = new PDO("mysql:host=$DB_HOST;dbname=$DB_DATABASE",$DB_USER,$DB_PASSWORD); // Deal w
$conn = new PDO("mysql:host=$DB_HOST;dbname=$DB_DATABASE",$DB_USER,$DB_PASSWORD);
// Deal with the POST variables here...(excluded)
$sql = "UPDATE clients (firstname, lastname, origincountry, dob, gender, email, phone, address, postal, city, province, referred, notes)
VALUES (:firstname, :lastname, :origincountry, :dob, :gender, :email, :phone, :address, :postal, :city, :province, :referred, :notes)
WHERE id = :clientid" ;
$q = $conn->prepare($sql);
$q->execute(array(':firstname'=>$firstname,
':lastname'=>$lastname,
':origincountry'=>$origincountry,
':dob'=>$dob,
':gender'=>$gender,
':email'=>$email,
':phone'=>$phone,
':address'=>$address,
':postal'=>$postal,
':city'=>$city,
':province'=>$province,
':referred'=>$referred,
':notes'=>$notes,
':clientid'=>$clientid));
您的SQL无效。请参阅。(感谢@rambocoder指出这一点)
使用以下SQL:
updateclients SET firstname=:firstname,lastname=:lastname,origincountry=:origincountry,dob=:dob,gender=:gender,email=:email,phone=:phone,address=:address,postal=:postal,city=:city,province=:province,refered=:referereded,notes=:notes
其中id=:clientid
此操作是否输出任何错误?请尝试放置错误报告(全部)
在代码顶部。@ShaquinTrifonoff我添加了它,但它仍然没有显示任何错误它与beginTransaction
和commit
一起工作吗?这是无效的sql。谷歌如何进行更新。我认为@rambocoder是正确的。我认为我所需要做的只是将INSERT改为update。但我需要使用update和SET。谢谢你的快速。我刚刚输入了新的查询,这时我看到它已经在这里完成了!谢谢!我使用了正则表达式,这就是为什么:-)非常快速和肮脏。还是要编辑一下。查找:(.*),
,替换:$1=:$1,
->感谢您在此处提及正则表达式。以前从未使用过。花了几个小时来学习regex,但现在我正在使用这个新工具快速浏览notepad++中的代码:)@mcflause我也使用notepad++。其中我使用最多的是NppFTP。