我正在尝试使用 GET 方法在我的数据库中选择一个表。 现在,当我在其中硬编码变量的值(表名)时,它按预期工作并返回数组中的值。
但是当我尝试通过变量确定表名时,出现以下错误:
Fatal error: Call to a member function fetch_array() on a non-object in
现在我已经尝试了 var_dump($result);
但它返回了 bool(false)
。
现在变量确实带有一个值,因为当我将它回显到屏幕时,它给出了我期望的值。
那么为什么我的表搜索查询时不返回值???
$result = $mysqli->query("SELECT * FROM PodcastSermons WHERE sermonSeries = ". $series); //This where a change needs to happen
var_dump($result);
$posts = array();
while($row = $result->fetch_array())
{
$ID=$row['ID'];
$sermonTitle=$row['sermonTitle'];
$sermonSpeaker=$row['sermonSpeaker'];
$sermonSeries=$row['sermonSeries'];
$sermonDate=$row['sermonDate'];
$linkToImage=$row['linkToImage'];
$linkToAudioFile=$row['linkToAudioFile'];
$posts []= array (
'ID'=> $ID,
'sermonTitle'=> $sermonTitle,
'sermonSpeaker'=> $sermonSpeaker,
'sermonSeries'=> $sermonSeries,
'sermonDate'=> $sermonDate,
'linkToImage'=> $linkToImage,
'linkToAudioFile'=> $linkToAudioFile
);
}
$response['posts'] = $posts;
var_dump($posts);
PS 我读过有关 mysql 风格的折旧,我知道必须使用 mysqli 编写。我正在运行 PHP 版本 5.2.6-1+lenny16
最佳答案
如果 $series
是一个字符串,您需要在变量周围加上引号。
尝试...
$result = $mysqli->query("SELECT * FROM PodcastSermons WHERE sermonSeries = '". $series ."'");
希望对您有所帮助。
关于php -$result->fetch_array 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14287663/