2012-02-09 3 views
-2

Я пытался понять это, но Google не возвращал никаких реальных ответов на мой вопрос.Могу ли я использовать переменные связывания с PHP и MySQL?

Я использую PHP (с CodeIgniter) и MySQL, есть ли способ, которым я могу использовать переменные связывания с моими SQL-выражениями?

+0

Я, должно быть, использовал неправильные ключевые слова ... спасибо за то, что был членом, а не помогал, хотя :) –

+0

На самом деле, мне было полезно ... Я специально связал вас с правильными условиями поиска Google (т.е. php mysql bind). Поблагодарите _you_ за ваши усилия по уменьшению отношения сигнал/шум для тегов с тегами mysql. – StudyOfCrying

+0

Возможный дубликат [Лучший способ остановить SQL Injection в PHP] (http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php) –

ответ

4

Ну, с CI вы можете:

$sql = "SELECT * FROM table WHERE name = ? AND email = ?"; 
$query = $this->db->query($sql, array($name,$email)); 

return $query->row_array(); 

Это связывает $ имя и переменная $ электронной почты в соответствующие й позиции внутри строки запроса. Это то, что вы имеете в виду? Существует также Active Record (обычная ORM, или sortof), что довольно приятно.

Все вышеперечисленное автоматически отменяет значения. Вы также можете запустить вручную с помощью $this->db->escape($string), а для имен столбцов - $this->db->protect_identifier($column_name). Но все это в руководстве, прочитать на нем.

+0

Спасибо, я не сделал понимаете, вы могли бы просто сделать это .... супер просто, спасибо! –

0

Вы можете использовать PDOStatement::bindParam(), что может быть значительно быстрее, чем функции CI, в зависимости от варианта использования.

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