我正在尝试使用PHP
将SQL查询的结果存储到数组中 <?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$ser="********";
$db="********";
$user="********";
$pass="********";
$dbDB = new PDO("odbc:Driver=ODBC Driver 13 for SQL Server;Server=********;Database=********;Port=1456", $user, $pass);
$sth = $dbDB->prepare("SELECT top 10 [Country],[Customer Name],[Purchase Number],[Part Number],[Qty],[Local Revenue] FROM ********");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_NUM);
?>
现在我想在JavaScript中使用变量 $ result ,而不是以这种方式手动定义
var result = [
["Austria", "Tech Data Service GmbH", "3508224010", "01HV707", 1, 1558.40],
["Austria", "Tech Data Service GmbH", "3508314557", "40M7578", 1, 102.40]
,...
];
我的问题是,变量 $ result 将数组中的所有元素作为字符串。
我正在使用此变量来创建数据透视表,这会导致数字问题,而不是以SUM为例,它将它们连接成一个字符串。 这是我在php部分之后添加到同一文件中的脚本
<script>
var data1 = <?php echo json_encode($result); ?>;
console.log("data is:",data1);
var data2 = [
["Austria", "Tech Data Service GmbH", "3508224010", "01HV707", 1, 1558.40],
["Austria", "Tech Data Service GmbH", "3508314557", "40M7578", 1, 102.40]
];
console.log("data is:",data2);
</script>
有没有办法将查询结果存储在一个保持元素类型的数组中?或者我应该添加到脚本部分的任何内容,以便它可以工作。
所以而不是
[“奥地利”,“Tech Data Service GmbH”,“3508224010”,“01HV707”,“1”,“1558.400000”]
我会
[“奥地利”,“Tech Data Service GmbH”,“3508224010”,“01HV707”,1,1558.40]
谢谢。
答案 0 :(得分:2)
json_encode()
可以接受additional parameters。能帮到你的是JSON_NUMERIC_CHECK
根据您的代码JSON_NUMERIC_CHECK
将数字字符串编码为数字。从那时起可用 PHP 5.3.3。
Here's an example使用情况:
<?php
$array = ["Austria", "Tech Data Service GmbH", "3508224010", "01HV707", "1", "1558.400000"];
echo json_encode($array, JSON_NUMERIC_CHECK);
// result:
// ["Austria","Tech Data Service GmbH",3508224010,"01HV707",1,1558.4]