2014-10-06 137 views
0

当我运行此查询时,它不返回任何结果。 我相信必须有一个语法错误,因为它会阻止代码在页面后面运行。无论如何,我不明白我出错的地方。MySQL查询准备语句不返回任何结果

如果没有什么似乎是语法问题,我可以发布我的数据库结构,如有必要。

$tag = $_GET['tag']; 
    $stmt = $mysqli->prepare('SELECT trips.trip_id FROM tags JOIN trips ON trips.post_id = tags.post_id WHERE tag = ?'); 
    $stmt->bind_param('s', $tag); 
    $stmt->execute(); 
    $stmt->bind_result($trip_id); ?> 

    <div id="map_canvas<?php echo $trip_id ?>" style="height:400px;"></div><?php 

更新:我已经跑了错误报告脚本,这是多么隆重推出......

Fatal error: Call to a member function bind_param() on a non-object in /Users/.../server/inc/feed-algorithm.php on line 37 
+0

你有错或错误报告吗? – Rasclatt 2014-10-06 20:26:30

+3

增加你的error_reporting并将display_errors设置为1.'error_reporting(E_ALL | E_NOTICE)'和'ini_set('display_errors',1)'。 – lxg 2014-10-06 20:26:52

+0

也关闭你的连接! – 2014-10-06 20:27:51

回答

0

看看PHP手册http://php.net/manual/en/mysqli.quickstart.prepared-statements.php并正确设置你的错误陈述。您准备的语句应该是这样的:

​​3210

当然,可选地,抛出和处理异常,如果你想多一点优雅,并保持你的错误,从用户。

另请参见示例2部分中的错误检查。看起来你的问题将在准备声明中,但因为如果它成功了,它不会返回一个“非对象”。