我有一个简单的SQL查询向数据库添加一个新行,需要它将一个字段返回给Javascript。该字段执行Auto_increment但是stupildy我将其称为'itemId',因此mysql_insert_id
不起作用,我认为我没时间去修改所有使用'itemId'的php文件
如果有帮助,这是我的代码:
$addMainItem = "INSERT INTO newsItems (itemId, title, date, tags, location, latitude, longitude, visibleFrontpage, introText, fullDome, liveEvent, customServing, visitorAttraction, retail, digitalCinema, visiblePublic, thumbPath, links, smallDesc) VALUES ('','$title','$date','$tags','$loco','$lat','$long','$visiFront','$intro','$dome ','$live','$custom','$attrac','$retail','$cinema','$public','$thumbPath','$links','$smallDesc')";
$result = mysql_query($addMainItem) or die('error '.mysql_error());
if($result) echo (mysql_insert_id());
答案 0 :(得分:2)
我从来没有听说过命名列itemId破坏了mysql_isert_id()。
但是如果auto_increment工作正常,你可以选择最后插入的记录。
SELECT * FROM newsItems ORDER BY itemId DESC LIMIT 1
如果您正在使用innoDB并且您担心竞争条件,则可以将select语句放入带有insert语句的事务中。
答案 1 :(得分:1)
mysql_query("SELECT LAST_INSERT_ID()");
这不是你想要的吗?