我正在使用simplexml_load_file()将XML提要解析为MYSQL表.有些变量是空白的,我希望它们是实际的NULL而不是NULL,还是有差别?
$xml = simplexml_load_file('cb.xml') or die ('Bad XML File');
foreach($xml->item as $item) {
$name = $item->name;
//Tried
if ($name == '') {
$name = 'NULL';
}
//And
if ($name == '') {
$name = NULL;
}
mysql_query("INSERT INTO cb (name) VALUES ('$name')");
Run Code Online (Sandbox Code Playgroud)
这是因为你给MySQL一个字符串:
.... ('ANYTHING WITHIN QUOTES IS A STRING')
Run Code Online (Sandbox Code Playgroud)
null
当"转换"为字符串时,PHP 值变为空字符串.所以你的第一次尝试给了... ('NULL')
,现在它给了... ('')
.
您必须NULL
在查询中使用不带引号的关键字插入NULL
数据库字段.
mysql_query("INSERT INTO cb (name) VALUES (" . ($name == null ? "NULL" : "'$name'") . ")");
Run Code Online (Sandbox Code Playgroud)
哦,像往常一样,注意不要使用未受保护的$name
变量注入SQL .