说我想做UPDATE table SET name = 'bob'
和UPDATE table SET age = 55 WHERE name = 'jim'
如何在同一个mysql_query()中做它们?如何在一个mysql_query中执行多个SQL语句?
编辑:因为这个问题有意见,我想指出的是,作为PHP 5.5 mysql_query
等mysql_*
功能现在都过时,不应该使用了相当数量。
说我想做UPDATE table SET name = 'bob'
和UPDATE table SET age = 55 WHERE name = 'jim'
如何在同一个mysql_query()中做它们?如何在一个mysql_query中执行多个SQL语句?
编辑:因为这个问题有意见,我想指出的是,作为PHP 5.5 mysql_query
等mysql_*
功能现在都过时,不应该使用了相当数量。
我从来没有试过这个,但我认为你可以使用mysqli::multi_query。 mysql_query
拒绝多个语句的好处之一是它会立即排除一些更常见的SQL注入攻击,例如将'; DELETE FROM ... #
添加到语句中。因此,您可能需要小心多条语句。
,因为它说的manual的顶部:
的mysql_query()发送一个唯一的查询(多个查询不支持)到服务器上的当前活动数据库与指定link_identifier关联。
你可以在互联网上的任何其他地方得到嘲笑 - 欢迎莱安德罗*不*把它带到SO。 :P –
你可以做这样的 “条件” 更新:
create table test (
id int not null auto_increment primary key,
name varchar(50),
age tinyint
) engine = myisam;
insert into test (name) values ('jim'),('john'),('paul'),('mike');
update test
set age =
case
when name = 'jim' then 10
when name = 'paul' then 20
else 30
end
希望它可以帮助你。
mysql_query()(通常是PHP的mysql驱动程序)出于安全原因不支持在单个查询()调用中执行多个查询:它消除了SQL注入攻击向量之一。换句话说:你不能这样做。 –