我是 PHP 的新手,不了解与 mysql 的交互,尤其是运行后的查询。这是我的代码:
$mysqli = new mysqli('localhost', 'foo', 'bar', 'table');
if ($mysqli->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ') '. $mysqli->connect_error);
}
$sql = "select column_name from information_schema.columns where table_name='activity'";
if ($execute = $mysqli->query($sql)) {
$result = mysqli_fetch_array($execute);//trying an array
$row_count = count($result);
}
for ($i=0; $i < $row_count; $i++) {
echo $i . ' ' . $result['column_name'] . '<br>';
}
当我这样运行它时,我得到了这个输出:
0 i
1 d
怎么回事?
当我在数据库上运行相同的查询时,我得到了这个:
column_name
___________
id
name
description
score
quality_id
date_mod
这正是我想要的,但在 php 中。
我也试过这个:
for ($i=0; $i < $row_count; $i++) {
echo mysql_result($execute, $i, 'column_name');
}
我明白了
mysql_result() expects parameter 1 to be resource
我没有得到什么?
有什么方法可以使数据库交互更容易吗?
最佳答案
调用 mysqli_fetch_array
为您提供结果集的第一行作为数组,它不会为您提供数组中的所有结果。
如果你想得到所有的结果,你必须这样做:
$i = 0;
While ($result = mysqli_fetch_array($execute))
{
echo $i . ' ' . $result['column_name'] . '<br>';
$i++;
}
顺便问一下,你确定你在回应 $result['column_name']
吗?从结果来看,您似乎正在使用 $result[$i]
。
关于PHP MySQL 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12765145/