J'ai de la difficulté à mettre en place cette fonction. Probablement une solution très facile mais je commence juste à utiliser PDO et je ne suis pas sûr de la façon de le faire fonctionner.PDO MYSQL Question
Mon problème ici est
for($i = 1; $row = $STH->fetch(); $i++) {
chaque fois que le code exécute cela arrive à
Fatal error: Call to a member function fetch() on a non-object in /usr/home/webmaster/nano/pages/search.php on line 21
Toute aide est grandement appréciée
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.";
Notez que l'utilisation de 'addslashes()' est très fausse ici. Vous avez besoin de '$ dbh-> quote()' pour éviter les exploits. – mario
Fera! Pourriez-vous nous donner un aperçu de pourquoi? –
Naviguez ici: http://stackoverflow.com/search?q=php+sql+escaping - et puisque vous utilisez déjà PDO, recherchez également des "instructions préparées" à la place. Mieux qu'une fuite manuelle fastidieuse. – mario