我知道這個問題有很多問題,但我只是無法理解。 我正在用php的帖子插入數據庫。每當我的字段爲空,將插入一個「0」的數據庫,而不是一個NULL值...我的代碼如下:如果沒有值發佈插入NULL到SQL數據庫
<?php
$host=""; // Host name
$username=""; // Mysql username
$contra=""; // Mysql password
$db_name=""; // Database name
// Connect to server and select database.
$dbh= mysql_connect("$host", "$username", "$contra")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$var1=$_POST["var1"];
$var2=$_POST["var2"];
$var3=$_POST["var3"];
$var4=$_POST["var4"];
// To protect MySQL injection
$var1=stripslashes($var1);
$var2=stripslashes($var2);
$var3=stripslashes($var3);
$var4=stripslashes($var4);
$var1 = mysql_real_escape_string($var1);
$var2 = mysql_real_escape_string($var2);
$var3 = mysql_real_escape_string($var3);
$var4 = mysql_real_escape_string($var4);
$sql="INSERT INTO PREGUNTAS (Var1, Var2, Var3, Var4) VALUES('$var1', '$var2', '$var3', '$var4');";
$table= mysql_query($sql, $dbh) or die ("you've got a problem");
}
break;
}
?>
我試着開始變這樣
$var2 = isset($_POST["var2"]) ? "'$var2'" : "NULL";
和
if($_POST['var2'] == "") $_POST['var2'] = "NULL";
但他們都沒有工作,查詢仍然加0。
,我收到以下錯誤/通知:
公告:未定義的索引:在上線/.....php VAR2 ...
你能幫幫我嗎?
謝謝!
,因爲''NULL''是一個字符串,而'NULL'(沒有引號)表示空值 – Fabricator
可能在數據庫中爲這些列設置的默認值是0.所以當NULL傳入0(默認值)時進入。 –
你應該考慮PDO來適當引用這些字符串 – cmorrissey