Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用数据库中的数值编码JSON的最佳实践_Php_Mysql - Fatal编程技术网

Php 使用数据库中的数值编码JSON的最佳实践

Php 使用数据库中的数值编码JSON的最佳实践,php,mysql,Php,Mysql,最初我使用mysqli连接到数据库,但现在我尝试实现PDO 以前在使用mysqli时,我会这样做: $sql = "select * from companies"; $statement = $this->conn->prepare($sql); $statement->execute(); $result = $statement->get_result(); $companies = $result->fetch_assoc(); 这将获取关联值。电话号码

最初我使用mysqli连接到数据库,但现在我尝试实现PDO

以前在使用mysqli时,我会这样做:

$sql = "select * from companies";

$statement = $this->conn->prepare($sql);
$statement->execute();
$result = $statement->get_result();
$companies = $result->fetch_assoc();
这将获取关联值。电话号码将作为varchar存储在mysql中,因此电话号码将以字符串的形式返回,与数字对应

现在,当我尝试这样使用PDO时:

$sql = "SELECT * FROM companies";

try {
    $db = new db();
    $db = $db->connect();
    $stmt = $db->query($sql);
    $companies = $stmt->fetchAll(PDO::FETCH_ASSOC);
    echo json_encode($companies);

} 
catch (Exception $ex) {
    echo '{"error": {"text": '.$ex->getMessage().'}';
}
所有值都将作为字符串返回

我尝试了
echo json\u encode($companys,json\u NUMERIC\u VALUE)
但我对以0开头的邮政编码和电话号码有问题,其中0在前面消失了


我曾想过循环遍历这些值,并为值指定必要的类型,但这似乎有点冗长。

只要简单地将邮政编码转换为字符串,就可以避免“所有值都将作为字符串返回”的问题。这是个问题吗?PHP和JavaScript都是松散类型的-一切都是字符串不应该有任何问题。@CD001我宁愿在我的移动应用程序中使用它们之前将它们转换为必要的类型,因为我需要转换它们。@初学者这有什么帮助?我将它从一个字符串转换成一个字符串,然后使用
JSON\u NUMERIC\u VALUE
将它转换成一个整数。
JSON\u encode
无论如何不应该将整数/浮点数括在引号中;邮政编码和电话号码都是字符串(例如“1017 PH”或“+31 20 123 1234”)-那么您得到的哪些数据必须是数字?只需将邮政编码转换为字符串即可避免“所有值都将作为字符串返回”的问题-这是问题吗?PHP和JavaScript都是松散类型的-一切都是字符串不应该有任何问题。@CD001我宁愿在我的移动应用程序中使用它们之前将它们转换为必要的类型,因为我需要转换它们。@初学者这有什么帮助?我将它从一个字符串转换成一个字符串,然后使用
JSON\u NUMERIC\u VALUE
将它转换成一个整数。
JSON\u encode
无论如何不应该将整数/浮点数括在引号中;邮政编码和电话号码都是字符串(例如“1017 PH”或“+31201234”)-那么你有哪些数据必须是数字?