どのように私は私のテキスト文字列で疑問符を処理することから、クエリクラスを防ぐのですか?
質問
PHPのではなく、新たな
、これは愚かなようであればとても残念。私は本当に私の会社で、他の開発者から以前に書かれたコードから、このたくさんのをコピーしています。
私たちはクエリを実行する方法は、次のように基本的には次のとおりです。
$qry = new SQLQuery;
$sqlString = "SELECT * FROM database.table WHERE table.text = '" .
$textVar . "' and table.text2 = '" . $text2Var."'";
$qry->prepare(String::Condense($sqlString));
$qry->execute();
私がいる問題はその$textVar
または$text2Var
が合法的に自分のテキストの一部としてそれらの中に疑問符(?)を持っていることがあり、これは、クエリのSQLQueryクラスは、私はありません変数として疑問符を治療破る原因になっていますそれを渡します。
それでは、どのように私は?疑問符を無視するのSQLQueryクラスを指示することができます。
p.s。私に答えを与えるとき、私は確信している用語は、私が知らないことを、このたくさんのがありますよ、心の中でそれを保管してください。
解決
あなたは$sqlString
と?
を入れている$textVar
を持っているあなたのプリペアドステートメントの$text2var
をしたいし、次にあなたが声明にそれらをバインドする必要があります。
これは、プレースホルダとして扱うの
のあなたのSQLを準備するときます。ですからます:
$sqlString = "SELECT * FROM database.table WHERE table.text = ? and table.text2 = ?"
あなたはを見てみる必要があるの MySQLは準備しましたステートメントのを、彼らがどのように動作するかを理解し、どのようにそれらが提供するメリットます。
他のヒント
:それはおそらくより多くのようなものでなければなりませんので、
これはちょっといくつかのPDO誘導体のように見えます
$qry = new SQLQuery;
$sqlString = 'SELECT * FROM database.table WHERE table.text=? AND table.text2=?'
$qry->prepare($sqlString);
$qry->execute(array($textVar, $text2Var));
所属していません StackOverflow