我有PHP(PDO)的这种情况;
我正在实现一个从MySql中检索数据并且做得很好的方法,但问题是重复的数据作为关键骨骼恢复为没有值,但其他数据追加更多,留下脚本和图像以获取更多细节;
Data.php
//read
public function getData() {
$statement = $this->db->prepare("select Id,Company_Name,Contact_Name,Contact_Title,Address from contact_details LIMIT 3;");
$statement->execute();
if ($statement->rowCount() > 0) {
$value = $statement->fetchAll();
return $value;
}
}
变量检验
json重复
预期结果
Data: [{"Id":"1","Company_Name":"Romero y tomillo","Contact_Name":"Alejandra Camino","Contact_Title":"Accounting Manager","Address":null}
,{"Id":"2","Company_Name":"Morgenstern Gesundkost","Contact_Name":"Alexander Feuer","Contact_Title":"Marketing Assistant","Address":"Heerstr. 22"}
,{"Id":"3","Company_Name":"Ana Trujillo Emparedados y helados","Contact_Name":"Ana Trujillo","Contact_Title":"Owner","Address":null}]
答案 0 :(得分:3)
默认情况下,PDO使用PDO :: FETCH_BOTH作为其获取结果。这意味着它将每列映射到其名称和“整数”列名称。
检查fetch_style param = http://php.net/manual/en/pdostatement.fetch.php
对于您的预期结果,您需要使用PDO::FETCH_ASSOC
属性。
您可以将其设置为pdo对象上的默认FETCH_MODE,如下所示:
$this->db->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC);
或者您可以为每个提取cal指定它:
$value = $statement->fetchAll(PDO::FETCH_ASSOC);
答案 1 :(得分:2)
将pdo属性编码更改为要求。 。
$dbConnection = new PDO( 'pgsql:host=' . $host . ';dbname=' . $database, $username,
$password, );
$dbConnection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);