php - SELECT LAST_INSERT_ID() 未正确生成

标签 php mysql

我正在建立一个房地产网站。

目前的情况是我有一个 property.php,其中包含许多 isset _get 来确定输出。属性页正在查询属性表并根据字段允许不同类型的输入。我允许上传图像表中的多个图像。这一切都很完美。

问题是,由于有两个表,我需要插入两个查询(我已将表、列和字段定义到变量中,以便我可以在不同的页面和站点中重用它们:))

    $qry=mysql_query("INSERT INTO $table($col1,$col2,$col3,$col4,$col5,$col6,$col7,$col8,$col9,$col10,$col11,$col12,$col13,$col14)VALUES('$field','$field2','$field3','$field4','$field5','$field6','$field7','$field8','$field9','$field10','$field11','$field12','$field13','$field14')", $con);


if(!$qry)
{
die("Query Failed: ". mysql_error());
}
else
{

include 'upload.php';

upload.php 完成图像的所有移动并运行另一个查询

$query="INSERT into images (`property`,`image`)  VALUES(SELECT LAST_INSERT_ID(),'$file_name'); ";

我的问题是属性字段永远不会填充 last_insert_id() 并且始终为 0。

基本上,我希望能够跟踪上传到在提交期间插入的属性表的 id 的所有图像,并且我相信 last_insert_id() 可以满足我的需求 - 但不是使用当前代码。

在任何人谈论 mysqli 和 pdo 之前,让我提一下,我将在稍后阶段进行。

最佳答案

插入 try 时,无需在 LAST_INSERT_ID() 之前使用 select

$query="INSERT into images (`property`,`image`)  VALUES( LAST_INSERT_ID(),'$file_name'); ";

或者你可以尝试使用mysql_insert_id()

$qry=mysql_query("INSERT INTO $table($col1,$col2,$col3,$col4,$col5,$col6,$col7,$col8,$col9,$col10,$col11,$col12,$col13,$col14)VALUES('$field','$field2','$field3','$field4','$field5','$field6','$field7','$field8','$field9','$field10','$field11','$field12','$field13','$field14')", $con);
if(!$qry) {
  die("Query Failed: ". mysql_error());
}
else {
$last_id = mysql_insert_id();
include 'upload.php';

然后 upload.php 查询将是

$query="INSERT into images (`property`,`image`)  VALUES('$last_id','$file_name'); ";

关于php - SELECT LAST_INSERT_ID() 未正确生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28148715/

相关文章:

mysql - 如何在nodejs中以刷新率显示来自mysql的数据

mysql - Ruby on Rails/Activerecord mySQL 建模

php - 使用搜索关键字获取两个表

php strtotime 不工作

PHP MYSQL 选择最近24小时和之前24小时的数据

php - 使用 php/javascript 在链接上提交表单

mysql - 如何从我的 Spring Boot 应用程序在 mysql 中创建新架构

php - 我如何在 Zend 的 application.ini 文件中定义一个 mysql 连接?

php - Laravel 5.5 覆盖供应商类

php - 无法检查检查了哪个检查列表