0

我正在尝试向我的数据库中名为 ID 的列添加一个数字。应该发生的情况是,当数据库中没有数据时,此脚本将插入 ID 编号为 1 的第一行,但问题是它不起作用。

我认为我对空数据的检查是一个问题,你们中的一个人可以通过指出我应该做什么来帮助我。

我的代码

<?php

/**
 * @author SiNUX
 * @copyright 2013
 */

include ('connect.php');

$lastId = mysql_query("SELECT ID FROM poiinfo");

$row = mysql_fetch_array($lastId);

if (is_null($row['ID'])){

    $nId = $row['ID'];
    $nId = 0;
    $nId = $nId++;

    $addId = "INSERT INTO poiinfo(`ID`) VALUES ('$nId')";
    mysql_query($addId);

}else {

    $lId = $row['ID'];
    $lId = $lId + 0;
    $lId++;
}

?>
4

2 回答 2

2

您正在执行的这个查询

INSERT INTO poiinfo('ID') VALUES ('$nId')

很可能会失败,因为columnname被单引号括起来。应该删除引号或用反引号替换它,例如

INSERT INTO poiinfo(ID) VALUES ('$nId')

或者

INSERT INTO poiinfo(`ID`) VALUES ('$nId')

所以问题是,我什么时候使用反引号?这是您使用的名称在 MySQL 的保留关键字列表中,

最后,您必须传递包含查询的变量mysql_query()

mysql_query($addId);
于 2013-01-22T09:52:06.513 回答
0

您必须重置自动增量字段ID,以便在表为空时插入 1

于 2013-01-22T10:07:11.227 回答