Php 为什么$wpdb->;insert_id和mysql_insert_id()返回一个额外的';1';最后?
我需要检索最后一个查询的自动增量值的ID 我的查询如下所示:Php 为什么$wpdb->;insert_id和mysql_insert_id()返回一个额外的';1';最后?,php,wordpress,Php,Wordpress,我需要检索最后一个查询的自动增量值的ID 我的查询如下所示: $result = $wpdb->query( $wpdb->prepare( " INSERT INTO $table_name ( name, season, copyright, description, path ) VALUES ( %s, %s, %s, %s, %s )", $galleryData['name'], $galleryData['season'], $ga
$result = $wpdb->query( $wpdb->prepare( "
INSERT INTO $table_name
( name, season, copyright, description, path )
VALUES ( %s, %s, %s, %s, %s )",
$galleryData['name'], $galleryData['season'], $galleryData['copyright'], $galleryData['description'], $galleryData['path'] ) );
// Let's output the last autogenerated ID.
echo $wpdb->insert_id;
// This returns the same result
echo mysql_insert_id();
查看我的DB表,我看到行数从1到24(24行)。
但是使用$wpdb->insert_id
或mysql_insert_id()
返回241
执行新插入将返回251、261、271等。为什么我要在最后加上额外的“1”
更新多亏了佩卡(我最好记下欠他多少啤酒),我才算出了 再往下看代码,我得到了:
if(!$result)
_e("[DB error] Ups. Something went wrong when trying to insert the event.");
else
echo true;
这是输出的最后一条语句(echo true) 我赌的是美味的克尔什: 原因实际上是代码后面的一个
echo
,它回显某个布尔变量,其true
将转换为1
如果我错了,我会像男人一样接受落选
(请原谅这个愚蠢的回答,已经很晚了,我还在工作:)
更新:啊,乔伊,我是对的 你是说上面的代码会回显
241241
,251251
,等等?我敢打赌,在某个地方会输出一个布尔变量(回显时转换为1
)。不,运行$wpdb->insert_id
或mysql_insert_id()
将返回241
,251
,261
等等。第一个到的数字是正确的,但随后添加了1。在MySQL中,最高的ID是26
。那么上面的代码会产生什么结果呢?您可以尝试echo“”。MySQL\u insert\u ID()代码>?如果输出的'241'
中的1包含在引号中,我相信这一点,但不是在之前;)啊哈。你是我的朋友!下次我去德国的时候,我会给你买一大杯冰镇可乐;)虽然我很惊讶你住在德国。佩卡听起来很完美:)是的,我也在工作到很晚@史蒂文:嘿,永远欢迎!:)我是半个芬兰人,因此得名。我马上就要结束了,“晚上!