我將變量設置爲NULL,即時嘗試插入數據庫,但由於某些原因,他們一直提交爲'0'。我肯定,列im試圖插入允許NULL,並且默認設置爲NULL。繼承人我的代碼:將NULL變量插入到數據庫中
$insert = NULL;
$query = mysql_query("INSERT INTO `table1` (column1) VALUES ('$insert')") or die(mysql_error());
我將變量設置爲NULL,即時嘗試插入數據庫,但由於某些原因,他們一直提交爲'0'。我肯定,列im試圖插入允許NULL,並且默認設置爲NULL。繼承人我的代碼:將NULL變量插入到數據庫中
$insert = NULL;
$query = mysql_query("INSERT INTO `table1` (column1) VALUES ('$insert')") or die(mysql_error());
Warning:
Please, don't use
mysql_*
functions for new code. They are no longer maintained and the community has begun the deprecation process . Instead you should learn about prepared statements and use either PDO or MySQLi .
IF你希望它是NULL
(你真的真的仍然希望在數據庫中可以使用mysqli_*
)他以下幾點:
$insert = NULL;
$query = mysql_query("INSERT INTO `table1` (column1) VALUES ("
.(($insert===NULL)?
"NULL":
"'".mysql_real_escape_string($insert)."'").
")") or die(mysql_error());
所以:所有的一切,你應該用準備好的語句。
您可以使用MySQLi像這樣:
$dbHandle = new mysqli(...);
$query = "INSERT INTO `table1` (column1) VALUES (?)";
$statement = $dbHandle->prepare($query);
if($statement){
$statement->bind_param('s', $insert);
if(!$statement->execute()){
echo "Statement insert error: {$statement->error}";
}
$statement->close();
}
else {
echo "Insert error: {$dbHandle->error}";
}
這給出了語法錯誤 – 2012-07-09 15:31:17
錯誤@JonahKatz是什麼? – Neal 2012-07-09 15:31:55
'分析錯誤:語法錯誤,意外的T_STRING' – 2012-07-09 15:32:23
嘗試不帶引號;
$query = mysql_query("INSERT INTO `table1` (`column1`) VALUES (".$insert.")") or die(mysql_error());
查詢應該是;
INSERT INTO table1
(column1
)VALUES(NULL);
這給了我一個mysql錯誤 – 2012-07-09 15:29:48
好奇 - 錯誤是什麼? – craig1231 2012-07-09 15:31:33
'你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行附近'。,'24')'使用正確的語法。 – 2012-07-09 15:33:58
試試這個靜態查詢:
$query = mysql_query("INSERT INTO `table1` (column1) VALUES (NULL)") or die(mysql_error());
使用變量:
$insert= NULL;
$insert = ($insert===NULL)? 'NULL' : "'$insert'";
mysql_query("INSERT INTO `table1` (column1) VALUES ($insert)") or die(mysql_error());
這可行,但我需要它是一個變量,因爲有時變量不是null – 2012-07-09 15:30:08
好吧試試上面的代碼.. – 2012-07-09 15:54:36
@MaheshMeniya感謝複製/粘貼:-P – Neal 2012-07-09 15:55:00
您是否嘗試過用事先準備好的聲明? 見[http://stackoverflow.com/questions/5329542/php-mysql-insert-null-values][1] [1]:http://stackoverflow.com/questions/5329542/php-mysql-insert-null-values – jle 2012-07-09 15:28:33
嘗試在數據庫表中將默認值設置爲NULL。當你創建一個新的記錄時,column1將自動爲NULL。或者嘗試將$ insert變量設置爲null $ insert = null。問題是 - 爲什麼你需要它作爲NULL? – comprex 2012-07-09 15:27:30