2013-01-22 118 views
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++; 
} 

?> 
+3

什麼是y我們的桌子結構?而且...爲什麼你手動填充ID?使用'自動遞增'。 – Peon

+1

我不知道爲什麼你需要這樣做。 'AUTO_INCREMENT'會爲你選擇下一個ID。 –

+2

爲什麼你不使用'auto_increment'索引作爲ID? –

回答

2

此查詢其執行

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

將最有可能失敗,因爲columnname用單引號括起來。該報價應reomved或反引號替換它,例如

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

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

所以問題是,當我使用反引號?這是你正在使用的名稱是MySQL的保留關鍵字的列表,

,最後,你必須通過包含查詢變量在mysql_query()

mysql_query($addId); 
+1

此外,函數調用不會引用存儲查詢的變量。 'mysql_query(「addId」);'應該是'mysql_query($ addId);' –

+0

@BrendanBullen thx bro我沒有那個 –

+0

@BrendanBullen是的,好點。 –

0

你將不得不重置自動增量字段ID,以便您可以在表格爲空時插入1

相關問題