我的代码需要帮助。我一直在寻找引用同一问题的问题。但我还没找到任何东西。
问题是它在输出中没有显示任何内容。 (没什么,只是一个空白页面。)所有的主机,用户,通行证,数据库名称和查询都很好。我对它们进行了三重检查。
这是我的代码:
<?php
define('HOST', 'host');
define('USER', 'user');
define('PASS', 'root');
define('DB', 'database');
$con = mysqli_connect(HOST,USER,PASS,DB);
$sql = "SELECT * FROM teams";
$res = mysqli_query($con,$sql);
$result = array();
while($row = mysqli_fetch_array($res)){
array_push($result, array(
'id_team'=>$row[0],
'name'=>$row[1]
));
}
echo json_encode(array("result"=>$result));
mysqli_close($con);
?>
我使用了var_dump($result);
,它显示了这样的完整数组:
array(134){[0] =&gt; array(4){[&#34; id_team&#34;] =&gt;字符串(1)&#34; 3&#34; [&#34;名称&#34;] =&GT; string(6)&#34; Baddis&#34;} [1] =&gt; array(4){[&#34; id_equipo&#34;] =&gt;字符串(1)&#34; 4&#34; [&#34;名称&#34;] =&GT; string(6)&#34; Combis&#34;}
我认为我必须收到如下输出:
[ {&#34; id_team&#34;:&#34; 3&#34;&#34;名称&#34;:&#34; Baddis&#34;}, {&#34; id_team&#34;:&#34; 4&#34;,&#34; name&#34;:&#34; Combis&#34;}]
所以,我不知道我错过了什么,或者我的代码中出了什么问题。有人能帮助我吗?
编辑2: 我使用了另一个简单的代码,但它是相同的,我不能获得超过X输出。我在我的数据库中有135行,我只能检索到70个团队的4列,如果我删除了一个列,我可以获得80个团队,它就像一个极限或最多的字符或者其他东西......同样的问题:
<?php
$query=mysql_query("SELECT id_team,name,cat,tel FROM teams")
while($row=mysql_fetch_assoc($query))
$array[]=$row;
print(utf8_encode($array));
mysql_close();
?>
答案 0 :(得分:0)
您的PHP版本&gt; = 5.2.0?你的json版本&gt; = 1.2.0?这个功能 仅适用于与那些相同或更大版本的版本。
要检查一下,请创建一个这样的php文件:
<?
phpinfo();
然后运行它。 PHP版本是第一个出现在页面顶部的东西:
PHP Version 5.6.25
JSON版本应该出现在页面下方:
json
json support enabled
json version 1.3.6
Json支持应自动包含在PHP&gt; = 5.2.0中。
要根据您的代码检查json_encode函数是否正常工作,您可以试试这个:
<?php
$result = array();
array_push($result, array(
'id_team'=>"1",
'name'=>"Test1"
));
array_push($result, array(
'id_team'=>"2",
'name'=>"Test2"
));
array_push($result, array(
'id_team'=>"3",
'name'=>"Test3"
));
echo json_encode(array("result"=>$result));
以下是此代码应生成的输出:
{"result":[{"id_team":"1","name":"Test1"},{"id_team":"2","name":"Test2"},{"id_team":"3","name":"Test3"}]}