Мне интересно, может ли кто-нибудь помочь мне, поскольку я довольно смущен. Я собираюсь по кругу, и это похоже на такую фундаментальную вещь, как это, безусловно, имеет простой ответ; которые я еще не нашел, даже после нескольких часов поиска и чтения.Простой способ для mysqli подготовленных операторов с помощью SELECT *?
Так что в MySQL, я мог бы это:
$q=('SELECT * FROM table WHERE field="'.$var.'"');
$result = mysql_query($q);
if (!$result)
{
//some error handling
} else {
$row = mysql_fetch_assoc($result);
$var1 = $row['var1']
$varx = $row['varx']
}
Нет проблем. Теперь я хотел бы использовать placeholder вместо $ var, чтобы предотвратить инъекцию. Я знаю, что SELECT *
ленив, но игнорируя это на секунду, есть ли простой быстрый способ, который я могу воспроизвести выше, используя подготовленный оператор? До сих пор решения, которые я видел, включали функции с 20 линиями, используя getAll(), который требует загрузки в PEAR-библиотеках и всевозможных сложнейших вещей. Неужели есть что-то, что не требует всего этого излишества? Единственное, что мне удалось найти, это get_result(), хотя у меня есть необходимый драйвер mysqlnd, он не включен. Это связано с тем, что он должен быть включен для всего VPS, на котором я был (это проблема, хотя?)
Может ли кто-нибудь предоставить простой примерный код? Я действительно смущен, потому что что-то настолько простое, похоже, не простое решение?
Пожалуйста прекратить использование 'mysql_' префиксов, так как они являются устаревшими и широко открыты для атаки. Соответствующей методикой для использования являются префиксы 'mysqli_', из которых вы можете найти множество документации. – PlantTheIdea
Вы можете проверить документацию по PHP http://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php – aerojun
@PlantTheIdea, спасибо, но это то, что я пытаюсь сделать! – Whitenoise