如果我尝试通过用分号分隔它们来一次执行两个MySQL查询,它在PHP MyAdmin中工作正常,但查询在PHP mysql_query()
中根本不起作用。
有谁知道为什么?
答案 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
将成为一个我们可以循环的查询数组。