0

データベースの ID という列に数値を追加しようとしています。データベースにデータがない場合、このスクリプトは ID 番号が 1 の最初の行を挿入しますが、問題は機能していません。

私のnullデータのチェックが問題だと思います。何をすべきかを指摘して、あなたの誰かが私を助けることができます.

私のコード

<?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')

問題は、いつ backtick を使用するかです。MySQL の予約済みキーワードのリストにある名前を使用しています。

最後に、クエリを含む変数を渡す必要がありますmysql_query()

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

IDテーブルが空の場合に1を挿入できるように、自動インクリメントフィールドをリセットする必要があります

于 2013-01-22T10:07:11.227 に答える