2012-02-09 11 views
-2

私はこれを理解しようとしてきましたが、Googleは私の質問に対する本当の答えを立てていませんでした。PHPとMySQLでバインド変数を使用できますか?

私はPHP(CodeIgniterを使用)とMySQLを使用していますが、SQLステートメントでバインド変数を使用できる方法はありますか?

+0

私は間違ったキーワードを使用しているに違いありません...役に立つのではなく、ディックでありがとう:) –

+0

実際には、私は助けていました...私はあなたに正しいGoogle検索条件mysqlバインド変数)。ここでmysqlタグ付き質問の信号対雑音比を下げる努力をしてくれてありがとうございます。 – StudyOfCrying

+0

[PHPでSQLインジェクションを止める最善の方法]の複製が可能です。(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(); 

これは$名と$ Eメール変数は、クエリ文字列内の各ポジション番目に結合します。これはあなたが意味することですか? Active Record(カスタムORM、またはsortof)もあります。これはかなり良いです。

上記のすべてが自動的にエスケープする値です。 $this->db->escape($string)で手動でエスケープし、列名には$this->db->protect_identifier($column_name)でエスケープすることもできます。しかし、それはマニュアルのすべてで、それを読んでください。

+0

ありがとうございました。あなたはちょうどそれを行うことができることを実現....超シンプル、ありがとう! –

0

ユースケースによっては、PDOStatement::bindParam()を使用することができます。これは、CIs関数よりもはるかに高速です。

関連する問題