使用PHP数组将null插入MySQL。 PDO准备的陈述

时间:2015-07-17 10:11:22

标签: php mysql pdo

我有一些从我的客户端发送到我的服务器的信息,格式如下:

{
    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值

1 个答案:

答案 0 :(得分:0)

始终验证您的想法。

  

它保存" null"在json_decode阶段作为String。

错误。

$json = '{
    "identifier": {
        "value": null,
        "public": false
    }
}';
$obj = json_decode($json);
var_dump($obj);

明确表示价值为空 反过来,它使用PHP数组和PDO预处理语句在MySQL中插入。