2014-02-19 2 views
-1

Мне интересно, может ли кто-нибудь помочь мне, поскольку я довольно смущен. Я собираюсь по кругу, и это похоже на такую ​​фундаментальную вещь, как это, безусловно, имеет простой ответ; которые я еще не нашел, даже после нескольких часов поиска и чтения.Простой способ для 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, на котором я был (это проблема, хотя?)

Может ли кто-нибудь предоставить простой примерный код? Я действительно смущен, потому что что-то настолько простое, похоже, не простое решение?

+0

Пожалуйста прекратить использование 'mysql_' префиксов, так как они являются устаревшими и широко открыты для атаки. Соответствующей методикой для использования являются префиксы 'mysqli_', из которых вы можете найти множество документации. – PlantTheIdea

+0

Вы можете проверить документацию по PHP http://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php – aerojun

+0

@PlantTheIdea, спасибо, но это то, что я пытаюсь сделать! – Whitenoise

ответ

Смежные вопросы