SELECT LAST_INSERT_ID()无法正确生成

时间:2015-01-26 10:51:05

标签: 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之前,请允许我提一下,我将在稍后阶段进行。

1 个答案:

答案 0 :(得分:0)

插入试用

时无需在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'); ";