mysql_fetch_array()复制了每一件事

时间:2013-09-20 19:56:07

标签: php arrays json

嘿伙计们(和女孩们)我的数组有问题,下面的代码看起来像复制数组中的每一列! :/

<?php
//quantidade_de_registro
include("mysqlconfig.inc");
$query = "SELECT * FROM contas ";
$res = mysql_query($query);
while($row = mysql_fetch_array($res)){
$arr[] = $row;
}
echo json_encode($arr);
mysql_close($con);
?>

它将返回如下内容:

[{"0":"5","ID":"5","1":"Zenny","Login":"Zenny","2":"Zeny","Nome":"Zeny","3":"daniel_queiroz789@hotmail.com","Email":"daniel_queiroz789@hotmail.com","4":"23021994","Senha":"23021994"}]

每列出现两次,但我需要每列只出现一次,我的朋友说我需要重新解析数组并将其放入数组中,我不知道它意味着什么或我怎么做那:/

请帮助:)

4 个答案:

答案 0 :(得分:1)

您可以通过向fetch添加第二个参数来修改脚本

mysql_fetch_array($res,MYSQL_ASSOC)

但是我会说你应该使用PDO或mysqli

答案 1 :(得分:0)

使用mysql_fetch_assoc

不,不要那样做。而是使用PDOmysqli及其各自的获取方法。

mysql_fetch_array同时提取数字和关联数组。

答案 2 :(得分:0)

mysql_fetch_array()因为它是默认情况下“MYSQL_BOTH”的第二个参数,这意味着它返回一个包含数字和关联键的数组。

要只拥有其中一个,您可以在通话中指定它

mysql_fetch_array($res, MYSQL_ASSOC); // for assosiative
// OR
mysql_fetch_array($resm MYSQL_NUM); // for numeric

有关更多信息,您可以查看PHP文档:http://php.net/manual/en/function.mysql-fetch-array.php

答案 3 :(得分:0)

尝试使用PDOPDOStatement类提取方法允许您设置返回数据的格式。

以下是一些用于在关联数组中检索数据的代码:

try {
    $dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    $sth = $dbh->prepare("SELECT * FROM contas");
    if($sth->execute()) {
        $contacts = $sth->fetchAll(PDO::FETCH_ASSOC);
        echo json_encode($contacts);
    } else {
          throw new PDOException(print_r($sth->errorInfo(), true));
    }

} catch(PDOException $e) {
    echo $e->getMessage();
}