为什么我的MySQL搜索查询返回列名和数据?

时间:2016-04-11 00:56:44

标签: php mysql mysqli

我是PHP的新手,我已经在这个问题上被困了一段时间了(一直在搜索,但实际上没有帮助)。

我正在尝试搜索数据表中的所有数据(“Select * FROM X”),这似乎工作正常。

然而,当我尝试返回/回显数据时,将JSON格式编码为数组(我想在数组中将1行作为1个索引),这确实很奇怪。

这是我目前使用的代码;

$SQL = "SELECT * FROM `units`";
$Result = mysqli_query($link, $SQL) or die ("DB ERROR");
$Total = mysqli_num_rows($Result);
if($Total > 0)
{
    $rows = mysqli_fetch_array($Result, MYSQLI_NUM);
    $row_count = mysqli_num_rows($Result);
    while($row = mysqli_fetch_array($Result))
    {
        echo json_encode(array($row));
    }
}

然后通过;

在Unity(C#)中使用
JSONObject obj = new JSONObject(loadUnitsWWW.text);
Debug.Log(obj);

结果是;

  

[{“0”:“2”,“unitID”:“2”,“1”:“Tanks”,“unitName”:“Tanks”,“2”:“Ground”,“unitType”:“地面“},[],[],[],[],[],[],[],[],[],[],[]]

似乎是出于某种原因试图返回一切,包括列名。但我不知道为什么它会多次返回相同的结果(并且不知道0来自哪里)。

正如我所说的,我对PHP很缺乏经验,因此很可能是某些东西(实际上我确定)该代码有问题,我尝试过for循环,例如;

for($i = 0; $i < $row_count; $i++) {...}

但无济于事(它返回的内容如下:

  

[ “1” 时,[],[] “”,NULL,NULL,NULL,{},NULL,NULL,null.null [] “” ..........] < / p>

如果数据表布局有帮助,则继续使用数据表布局;

unitID | unitName | unitType

1 | infantry | Ground <br>
2 | Tanks | Ground <br>
3 | Support | Ground <br>
4 | Artillery | Ground <br>
. <br>
.

表格中有13个项目

编辑:

这就是我所期待的:

  

[[“1”,“步兵”,“地面”],[“2”,“坦克”,“地面”] ....]

1 个答案:

答案 0 :(得分:-1)

0指的是结果集中的列顺序。您可以参考mysqli-result.fetch_array并检查参数和返回类型。 改变你的路线:

 while($row = mysqli_fetch_array($Result))

使用:

while($row = $rows) {
 // your code
 $rows = mysqli_fetch_array($Result, MYSQLI_NUM);
}

另一种解决方案,我认为对你更好

        $rows = mysqli_fetch_all($Result, MYSQLI_NUM);

            echo json_encode($rows);