2014-10-06 134 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部分中的錯誤檢查。看起來你的問題將在準備聲明中,但因爲如果它成功了,它不會返回一個「非對象」。