Php 如何解决分号附近的多语句mysql查询的语法错误

Php 如何解决分号附近的多语句mysql查询的语法错误,php,mysql,sql,Php,Mysql,Sql,我正在尝试使用mysql进行多状态查询,但遇到语法错误: “您的SQL语法有错误;请检查以下手册: 对应于您的MySQL服务器版本,以便使用正确的语法 近“插入第2行的新葡萄酒(img、新订单、publi)” 奇怪的是,如果我回显查询的字符串,并尝试在Navicat上执行它,它就会毫无问题地工作 我试图使用的查询字符串是这个 'BEGIN; INSERT INTO vinas_new ( img,

我正在尝试使用mysql进行多状态查询,但遇到语法错误:

“您的SQL语法有错误;请检查以下手册: 对应于您的MySQL服务器版本,以便使用正确的语法 近“插入第2行的新葡萄酒(img、新订单、publi)”

奇怪的是,如果我回显查询的字符串,并尝试在Navicat上执行它,它就会毫无问题地工作

我试图使用的查询字符串是这个

'BEGIN;
    INSERT INTO vinas_new (
        img,                                
        new_order,
        publicationDate,
        active,
        cover
    )VALUES(
        "'.$data['img'].'",                             
        "'.$data['new_order'].'",
        "'.$data['publicationDate'].'",
        "'.$data['active'].'",
        "'.$data['cover'].'"
    );                          
    INSERT INTO vinas_new_content (
        newId,
        lang,
        title,
        text
    )VALUES(    
        LAST_INSERT_ID(),
        "'.mysql_real_escape_string($data['lang']).'",
        "'.mysql_real_escape_string($data['title']).'",
        "'.mysql_real_escape_string($data['text']).'"
    );
COMMIT;';
我想这和分号有关,我试着用分隔符来避免这个问题,但没有任何运气

有什么建议吗


谢谢您的时间。

调试此问题的最简单方法是向我们显示
echo$sql
的结果(或存储查询的变量的名称)

然而,您似乎使用了过时的
mysql\uuz
API,它:

mysql_query()向服务器上与指定链接_标识符关联的当前活动数据库发送唯一查询(不支持多个查询)

尝试切换到(或PDO)并使用(或其中的3个),这样您就不必自己转义数据(如果您想继续使用
mysql\uuu
,您必须将其拆分为3个查询;或者为任务创建存储过程)

或者,如果您坚持一次完成所有操作(我看不出任何理由),您可以使用。

您使用的是???
mysql\u query()
不允许使用多个语句。如果有帮助,您也可以参考它。