PDO MYSQL Вопрос - PullRequest
       4

PDO MYSQL Вопрос

0 голосов
/ 16 декабря 2010

У меня проблемы с настройкой этой функции.Возможно, это очень легко исправить, однако я только начинаю использовать PDO, и я не уверен, как заставить это работать.

Моя проблема здесь

for( $i = 1; $row = $STH->fetch(); $i++ ) {

всякий раз, когда код выполняет этоэто прибывает в

Fatal error: Call to a member function fetch() on a non-object in /usr/home/webmaster/nano/pages/search.php on line 21

Вся помощь очень ценится

if($_POST['keyword']) {
$start_time = getmicrotime();
$keyword = addslashes( $_POST['keyword'] );
$results = addslashes( $_POST['results'] );
$STH = $DBH->query('SELECT p.page_url AS url,
                       COUNT(*) AS occurrences 
                       FROM search_page p, search_word w, search_occurrence o
                       WHERE p.page_id = o.page_id AND
                       w.word_id = o.word_id AND
                       w.word_word = "$keyword"
                       GROUP BY p.page_id
                       ORDER BY occurrences DESC
                       LIMIT $results');

$end_time = getmicrotime();

echo '<h2>Search results for '.$_POST['keyword'].':</h2>';
for( $i = 1; $row = $STH->fetch(); $i++ ) {
    echo '$i. <a href='.$row['url'].'>'.$row['url'].'</a>\n';
    echo '(occurrences: '.$row['occurrences'].')<br><br>\n';
}
print "query executed in ".(substr($end_time-$start_time,0,5))." seconds.";

1 Ответ

0 голосов
/ 16 декабря 2010

Ваш SQL неверен, поэтому ваш $ STH не получает объект результата и вместо него было установлено false.

В строках SQL требуется ' одинарные кавычки.Вы перепутали это в PHP.Используйте двойные кавычки, чтобы заключить весь оператор, и одинарные кавычки или $ dbh-> quote () на самом деле в пределах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...