我有一些从我的客户端发送到我的服务器的信息,格式如下:
{
identifier: {
value: null,
public: false
}
}
显然,该值并不总是为空,但有时需要将它发送给PHP时,它会保存" null"在json_decode
阶段期间作为字符串。当尝试将空值插入SQL数据库时,而不是NULL
我得到"null"
这导致我的客户端发生奇怪的事情。 (IE:显示" null"而不是什么)。
显然我可以在客户端检查" null"但我认为没有理由继续花费额外的数据字节来发送文本" null"给客户。
实施例
$identifier = $json_array['identifier'];
$statement = $connection->prepare("UPDATE table SET v1 = :val, p1 = :pub");
$statement->bindParam(":val", $identifier['value']);
$statement->bindParam(":pub", $identifier['public']);
$statement->execute();
其中v1是VARCHAR值
答案 0 :(得分:0)
始终验证您的想法。
它保存" null"在json_decode阶段作为String。
错误。
$json = '{
"identifier": {
"value": null,
"public": false
}
}';
$obj = json_decode($json);
var_dump($obj);
明确表示价值为空 反过来,它使用PHP数组和PDO预处理语句在MySQL中插入。