gpt4 book ai didi

php - 简单插入适用于 phpmyadmin 但不适用于 php

转载 作者:可可西里 更新时间:2023-11-01 08:08:22 26 4
gpt4 key购买 nike

我正在尝试使用 mysql_query 插入此查询

INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,1,1) ; 
INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,2,1) ;
INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,3,1) ;
INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,4,1) ;

它返回:1064 - 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 '; 附近使用的正确语法。 INSERT INTO um_group_rights (um_group_id,cms_usecase_id,um_right_id) V' 在第 1 行

分号显然有问题,但我不明白为什么。它在 phpmyadmin 中没有问题。php版本是5.2.6

最佳答案

可以肯定的是:当您尝试从 PHP 执行这 4 个查询时,您正在调用 mysql_query四次?

例如:

mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,1,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,2,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,3,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,4,1)");


我的意思是:您不能一次发送多个不同的查询,而只能一次调用 mysql_query (引用,强调我的):

mysql_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier .

您必须“分离”您的查询——这可能是 phpMyAdmin 在不告诉您的情况下所做的事情。

并且,作为 @Alexandre pointed out在评论中:

The query string should not end with a semicolon.


如果您使用 mysqli_* 函数(而不是 mysql_* )来访问您的数据库,您可以尝试使用 mysqli_multi_query .

不幸的是,mysql_* 有这样的功能。 .

(顺便说一句:mysql_* API 是旧的——使用 mysqli_* 会更好,尤其是对于新项目)



评论后编辑:

如果是关于性能,是的,对数据库进行一次调用,而不是连续四次调用 PHP <-> MySQL电话,可能会更好。

在这种情况下,您可以尝试使用允许一次插入多行的插入语法;见12.2.5. INSERT Syntax在 MySQL 的手册中 (引用) :

INSERT statements that use VALUES syntax can insert multiple rows.
To do this, include multiple lists of column values, each enclosed within parentheses and separated by commas.
Example:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

The values list for each row must be enclosed within parentheses.

关于php - 简单插入适用于 phpmyadmin 但不适用于 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2348925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com