Php PDO正在插入“;空";对于空值

Php PDO正在插入“;空";对于空值,php,sqlite,pdo,Php,Sqlite,Pdo,我正在使用PDO写入sqlite数据库 // $dbo is an instance of PDO $query = "INSERT INTO items (id, name, rank) VALUES (:id, :name, :rank)"; $statement = $dbo->prepare($query); $values = array('id' => 1, 'name' => 'Some Name', 'rank' => ''

我正在使用PDO写入sqlite数据库

// $dbo is an instance of PDO

$query     = "INSERT INTO items (id, name, rank) VALUES (:id, :name, :rank)";
$statement = $dbo->prepare($query);

$values = array('id' => 1, 'name' => 'Some Name', 'rank' => '');
 
$statement->execute($values);

$values = array('id' => 1, 'name' => 'Some Name', 'rank' => NULL);
 
$statement->execute($values);
在执行其中任何一个之后,我希望“rank”是一个空字符串,甚至可以接受NULL。 但是我在数据库中得到的是
'null'
,是字符串
'null'
值,而不是真正的
null


多次尝试后找不到任何解决方案。

请尝试在此行中直接发送NULL

  $values = array('id' => 1, 'name' => 'Some Name', 'rank' => NULL);

rank
列的数据类型是什么?@KIKOSoftware varchar,null allowedOK,谢谢。我认为SQLite可能会返回一个真正的
null
,但PHP/PDO会将任何结果(像那样)转换为字符串,因为它不知道结果是
null
。那么,我还是希望第一次插入的结果是一个空字符串,毕竟,空字符串也是一个字符串。事实上,插入空字符串确实会返回一个空字符串,而不是
null
。问题可能出在代码的其他地方。请阅读以下内容:这也不起作用。更新问题