我是mysqli的新手,并开始尝试学习基本知识。关于这个示例(http://php.net/manual/en/mysqli-result.fetch- array.php),我正在尝试fetch_array。这是我的代码。
$sqlGetChartData = "SELECT date, ratepersqft, location FROM ratepersqft WHERE project_id = 1"; $runGetChartData = $mysqli->query($sqlGetChartData); while($rowGetChartData = $runGetChartData->fetch_array(MYSQLI_BOTH)) $arrGetChartData[] = $rowGetChartData; print "<pre>"; print_r($arrGetChartData); exit();
在这里,我收到此错误,调用while条件行旁边的非对象上的成员函数fetch_array()。我尝试使用Google搜索,但没有得到解决我的问题的结果。希望我的问题清楚。提前致谢。
运行查询时始终检查错误。 而且,请不要使用不必要的长变量来扩展代码
$arrChartData[] = array(); $sql = "SELECT date, ratepersqft, location FROM ratepersqft WHERE project_id = 1"; $res = $mysqli->query($sql) or trigger_error($mysqli->error."[$sql]"); while($row = $res->fetch_assoc()) { $arrChartData[] = $row; }
看,第一个变量只包含SQL代码,在您的程序中没有特殊含义,它将被放置在下一行。 第二个变量包含mysqli结果。再次没有特殊意义。可以使用常规名称。 临时$row变量也是如此。 在代码中唯一具有特殊含义的变量是$arrChartData[]-因此,给它取有意义的名称。不过,您需要在填充之前对其进行初始化。
$row
$arrChartData[]
并注意trigger_error将mysqli错误转换为PHP错误的部分。始终以这种方式运行您的查询,以通知所有mysql错误
trigger_error
顺便说一句,将所有临时变量移到某种帮助函数中是一种好习惯,使您的应用程序代码像下面两行一样简单
$sql = "SELECT date, ratepersqft, location FROM ratepersqft WHERE project_id = 1"; $arrChartData[] = dbGetAll($sql);
这将使您的代码更短,更易读。