我正在尝试运行一个SQL命令来更新多个数据库。如果我直接将下面的sql代码复制粘贴到PHPMYADMIN中,它会执行得很好,但当我通过php运行sql时,它不会更新吗?
如果我通过我的php脚本分别为每个数据库运行更新,它们都更新得很好,所以我很困惑?
我做错了什么?
SQL代码:
UPDATE rst.users a, rst.user_type b
SET a.first_name='Timsd',a.last_name='Lebaronsd',a.password='timsd',
a.email='tim@dog.comsd', a.user_type_id='5',a.language_code='en_US',
a.timezone='Pacific/Midway', create_ts = '2010-07-16 12:33:31'
WHERE a.user_type_id = b.user_type_id AND b.account_id = 1 AND a.users_id = 90;
use externalusers;
UPDATE externalusers.user
SET fullname="'Timsd' 'Lebaronsd'", emailaddress="'tim@dog.comsd'"
WHERE rst_id = 90 AND rst_account_id = 1;发布于 2010-07-17 02:49:08
出于安全原因,mysql_query()和类似的函数不能执行多个语句。
如果你真的想在一次调用中执行多条语句,可以使用mysqli_multi_query()。
附注:这不是PHP的一个特性,而是mysql C API的一个特性。
发布于 2010-07-17 02:48:11
PHP有一个安全特性,可以防止您在一个mysql_query()调用中执行多个查询。不幸的是,原生mysql_*函数没有办法解决这个问题。
不过,我相信如果你使用PDO或MySQLi,你可以做到。我强烈推荐PDO。
发布于 2010-07-17 04:55:42
为了补充其他人的回答,重要的是要说,您实际上并不是在执行一条SQL语句,而是一个接一个地执行两条(或者实际上可能是三条)语句。PHPMYADMIN只是简单地中断它们;并按顺序执行它们。
https://stackoverflow.com/questions/3267918
复制相似问题