2012-02-13 104 views
0

我想添加一个空值到数据库中,如果表单字段为空,但没有得到多少运气...插入一个空值到SQL如果表单字段为空

任何人都可以看到,这是出错了?

<?php 
$con = mysql_connect("ipaddress","user","password"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("database", $con); 

if (is_null($_POST["event_sub"]) || $_POST["event_sub"]=="") { 
    $event_sub = NULL; 
} else { 
    $event_sub = mysql_real_escape_string($_POST["event_sub"]); 
} 

$sql="INSERT INTO myTable (event_sub) 
VALUES 
(". $event_sub .")"; 

if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 

mysql_close($con) 
?> 
+1

转储'$ _POST'和'$ sql'。那么问题应该会变得更加明显。 – 2012-02-13 15:19:49

+0

_“但没有得到太多的运气[...]任何人都可以看到”_是的,你。输出查询,查看从MySQL获得的错误,检查数据库中的数据。 – CodeCaster 2012-02-13 15:22:38

+0

您是否尝试设置'$ event_sub =“null”'? – rcdmk 2012-02-13 15:24:51

回答

2

也许试试这个:

if (is_null($_POST["event_sub"]) || $_POST["event_sub"]=="") { 
$event_sub = 'NULL'; 
} else { 
$event_sub = mysql_real_escape_string($_POST["event_sub"]); 
} 

把空单引号将导致字NULL被插入到你的查询,而不是实际NULL,这不算什么。

+0

这是错误的答案,它永远不会工作 – 2012-02-13 15:23:50

+1

它虽然工作,但! – Tom 2012-02-13 15:26:35

+0

@Tom你确定它没有插入文本“NULL”而不是实际的NULL值吗? – 2012-02-13 15:43:01

0

为什么你需要搜索单词NULL?只需将该列的插入留空即可。并确保允许在表中设置null ..

相关问题