【发布时间】:2013-10-12 01:47:42
【问题描述】:
我不熟悉 mysqli_fetch_array 并且似乎无法弄清楚这一点。我有以下代码:
function select_fetch_row ($arg1, $arg2) {
$con = new mysqli(/* ... */);
$query = "SELECT $arg1 FROM $arg2";
$select = mysqli_query($con, $query);
while($row = mysqli_fetch_array($select, MYSQLI_NUM)){
echo $row[0];
}
}
select_fetch_row(/* parameters*/);
但是我不明白它应该做什么。我期望获得一个数组,其中每个键对应于我的表中的一行,但是当我输出我的代码时,而不是仅仅回显第一行的值 ($row[0]),列的所有值都会得到回响。有人能解释一下这个函数是如何工作的吗?
【问题讨论】:
-
在调用时是否向函数发送任何参数?似乎并非如此。这些参数是正确构建查询所必需的
-
请不要使用字符串连接来编写查询。使用
bind_param方法。 -
@Hanky웃Panky 我忘记在上面的示例中添加它们,但在我的代码中我做到了。将在上面进行编辑,感谢您指出这一点。
-
@tadman:您如何将动态表名放入查询中而不进行连接?您将如何在不连接的情况下动态改变查询
WHERE条件? -
mysqli不是最好的系统,PDO 提供了更多的灵活性,但是是的,表名和列名总是很麻烦。如果您输入任意用户数据,您应该将这些内容列入白名单以避免各种伤害。至少这些应该被赋予正确的名称并转义:SELECT `$column` FROM `$table`会使其更加清晰。