在PHP中不能一次执行两个mysql查询

时间:2010-02-24 02:59:53

标签: php mysql

如果我尝试通过用分号分隔它们来一次执行两个MySQL查询,它在PHP MyAdmin中工作正常,但查询在PHP mysql_query()中根本不起作用。

有谁知道为什么?

3 个答案:

答案 0 :(得分:6)

mysql_query仅允许您一次进行一次查询。这有助于防止SQL注入。

来自文档:

  

mysql_query()发送一个唯一的查询   (不支持多个查询)   到当前活动的数据库   与之关联的服务器   指定link_identifier。

如果您要做的是确保在一个事务中运行两个查询,请使用PHP和MySQL检查事务控制上的this article

答案 1 :(得分:0)

答案 2 :(得分:0)

出于安全原因,您一次只能运行一个查询。您可以遍历一系列查询,然后独立运行。

$queries[] = "INSERT INTO users (name) VALUES ('jonathan')";
$queries[] = "UPDATE users SET name = 'Jonathan' WHERE name = 'jonathan'";

foreach ($queries as $query) {
  mysql_query($query);
}

您甚至可以将包含两个查询的单个字符串分解为数组:

$sql = "INSERT INTO users (name) values ('jonathan');
        INSERT INTO users (name) values ('sampson')";

$queries = explode(";", $sql);

$queries将成为一个我们可以循环的查询数组。