php - MySQL:LAST_INSERT_ID() 出现问题

标签 php mysql

我想在同一个查询中插入多个表,并使用 table2 从 table1 检索 id

这是我的sql代码

 $q = "
    INSERT INTO Product (pName, pBrand, pCategory, pSize, pQuantity, pPrice, pDetail)
        VALUES('$name', '$brand', '$category', '$size', '$quantity', '$price', '$detail');
    INSERT INTO Image (iName, iExt, iSize, pID)
        VALUES('$img_name', '$img_ext', '$img_size', LAST_INSERT_ID());";

 $mysqli->query($q);

它显示语法错误。 但我将 $q 的输出复制到 phpMyAdmin 的 SQL 查询中运行,它起作用了。 你能指出我的错误在哪里吗?

    INSERT INTO Product (pName, pBrand, pCategory, pSize, pQuantity, pPrice, pDetail)
        VALUES(....); #1 row affected
    INSERT INTO Image (iName, iExt, iSize, pID)
        VALUES(....); #1 row affected

最佳答案

我不相信您可以通过单个查询调用运行多个语句;您需要改为调用mysqli_multi_query:

http://php.net/manual/en/mysqli.multi-query.php

关于php - MySQL:LAST_INSERT_ID() 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12650022/

相关文章:

PHP MySQL 表单插入查询

php - 我应该在 MVC 中将依赖注入(inject)容器 (DIC) 作为参数传递吗?

php - 从 MYSQL 数据透视表中筛选记录

php - 更好的AWS实例

php - CodeIgniter if...else 语句未正确执行

php - 无法取出 XML 的命名空间属性

php - 当我利用 laravel 的 `RefreshDatabase` 特征通过 phphunit 运行数据库迁移时,Laravel 指定一个迁移文件夹

php - 将字符串转换为变量名

c# - 使用insert方法绕过sql注入(inject)

java - ResultSet 无法与 Java 中的PreparedStatement 一起使用