我正在建立一个房地产网站。
目前的情况是我有一个 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/