为什么php在查找某些列而不是其他列时会返回json?

时间:2017-03-28 23:13:48

标签: php mysql json

这是我的代码,它就像现在一样:

$con = @mysql_connect($server_name, $mysql_username, $mysql_password) or die("cannot connect");

mysql_select_db($db_name) or die("cannot select DB");

$sql="SELECT `idComp`,`nombre`,`foto` from RECURSOHUMANO;";
$result = mysql_query($sql);
$json= array();


if(mysql_num_rows($result)>0){
    while($row=mysql_fetch_assoc($result)){
        $json['Data'][]=$row;
    }
}

mysql_close($con);
echo json_encode($json);

?>

我正在处理的表有其他列,并希望将其中的一些添加到SELECT查询中,但是当我添加另一个时,比如说apPat,它就会停止工作。

为了清楚,我会写下我通常会这样做的方式:

$sql="SELECT `idComp`,`nombre`,`apPat`,`foto` from RECURSOHUMANO;";

apPat就像'nombre',所以我不明白为什么它不起作用。

此外,当我添加其他列时,它只会打破其中几个,但我需要它们。

更新: 只是为了澄清。 MySQL查询是正确的,如果我自己运行它会给我我想要的东西,即使我添加其他列。问题,我认为是在PHP。

1 个答案:

答案 0 :(得分:0)

field列表中使用单引号或双引号时,您告诉mysql创建一个包含其中完整字符串的列。

所以你的结果更像是这样,对吗?

mysql> select `pid`, `source`, `alias` from url_alias limit 5; +-----+--------------------+--------------------------+ | pid | source | alias | +-----+--------------------+--------------------------+ | 1 | /taxonomy/term/16 | /blah/project-management | | 2 | /taxonomy/term/14 | /blah/development | | 3 | /taxonomy/term/137 | /blah/business | | 4 | /taxonomy/term/13 | /blah/design | | 5 | /taxonomy/term/15 | /blah/quality-assurance | +-----+--------------------+--------------------------+ 5 rows in set (0.00 sec)

现在请注意'i am a string'周围的单引号以及结果的显示方式:

mysql> select `pid`, 'i am a string', `alias` from url_alias limit 5; +-----+---------------+--------------------------+ | pid | i am a string | alias | +-----+---------------+--------------------------+ | 1 | i am a string | /blah/project-management | | 2 | i am a string | /blah/development | | 3 | i am a string | /blah/business | | 4 | i am a string | /blah/design | | 5 | i am a string | /blah/quality-assurance | +-----+---------------+--------------------------+ 5 rows in set (0.00 sec)

我希望这有帮助!