Я прочитал, как параметризованные запросы являются способом продвижения вперед в отношении предотвращения инъекции SQL, однако, к моему удивлению, это кажется более сложным для реализации, чем я себе представлял.Является ли mysqlnd необходимым для SQLi параметризованных запросов в PHP?
Я попытался выполнить простой оператор SELECT, используя mysqli в PHP, используя параметризованный запрос, и я получаю фатальную ошибку PHP, заявив, что я вызвал неизвестный метод при попытке получить результат запроса. После Googling он заявляет, что мне нужно установить mysqlnd
и включить его для получения результата. Я также обнаружил, что mysqlnd
должен быть установлен по умолчанию на PHP 5.4 или новее. В настоящее время я использую 5.4.3, поэтому я ожидал, что он сработает.
Во-первых, необходимо ли мне mysqlnd
использовать параметризованные запросы или это необходимо только для более продвинутых пользователей и запросов? Есть ли метод, который вы можете использовать без mysqlnd для получения результата? Во-вторых, если мне это нужно, как мне включить его на моем PHP?
РНР:
$stmt = $con->prepare("SELECT some_id FROM some_table WHERE name = ? AND user_id = '$user_id'");
$stmt->bind_param('s', $name);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// do something with result
}
Ошибка:
PHP Fatal error: Call to undefined method mysqli_stmt::get_result()
Можем ли мы увидеть ваш код, отредактированный в вопрос? Какой метод неизвестен? – halfer
@halfer добавил код и сообщение об ошибке. – user3054325