Я пытаюсь использовать подготовленные команды mysqli с запросом оператора LIKE и подстановочными операторами. После того, как отладка будет разбрызгиваться выражениями echo по всему коду, я вижу, что оператор while while не выполняется. Вы видите, что я здесь делаю неправильно?
Это мой первый запрос на этот форум, поэтому я приношу свои извинения, если это не очень хороший вопрос; Я потратил 6 часов, пытаясь заставить подготовленный раздел инструкций моего кода работать, и я не могу найти нити, затрагивающие мой вопрос, которые не полностью перевернуты мне (например, как я могу поместить результаты подготовленного MySQLi оператора в ассоциативный массив? ). Два ближайших я нашел:
Использование подстановочных знаков в подготовленном операторе – MySQLi и Combine PHP подготовили записи с LIKE .
Вот соответствующий отрывок моего кода:
//set up and execute queries $titleQuery = "SELECT keyframeurl, videoid, title, creationyear, sound, color, duration, genre FROM openvideo WHERE title LIKE CONCAT ('%', ?, '%') ORDER BY $order"; if($stmt = mysqli_prepare($db, $titleQuery)){ //bind parameters mysqli_stmt_bind_param($stmt, 's', $trimmedTitleSearch); //execute query mysqli_stmt_execute($stmt); //bind results mysqli_stmt_bind_result($stmt, $keyframeurl, $videoid, $title, $year, $sound, $color, $duration, $genre); //store result so num rows can be counted $result = mysqli_stmt_store_result($stmt); //fetch results while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) { echo "<tr>"; echo "<td><a href=\"".$row['keyframeurl']."\">".$row['videoid']."</a></td>"; echo "<td>" . $row['title'] . "</td>"; echo "<td>" . $row['year'] . "</td>"; echo "<td>" . $row['sound'] . "</td>"; echo "<td>" . $row['color'] . "</td>"; echo "<td>" . $row['duration'] . "</td>"; echo "<td>" . $row['genre'] . "</td>"; echo "</tr>"; } } else { // Error printf("Prepared Statement Error: %s\n", $db->error); }
Спасибо за любой совет!