0

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 クラスに指示するにはどうすればよいでしょうか。

ps私が知らない用語がたくさんあると思います。答えを出すときはそのことを覚えておいてください。

4

2 に答える 2

2

プリペアドステートメント$sqlStringに、および?を配置する場所を設定する必要があります。次に、それらをステートメントにバインドする必要があります。$textVar$text2var

SQLを準備するとプレースホルダーのように見えるため、プレースホルダーとして扱われます。

それで:

$sqlString = "SELECT * FROM database.table WHERE table.text = ? and table.text2 = ?"

MySQLのプリペアドステートメントを確認し、それらがどのように機能し、どのような利点が提供されるかを理解する必要があります。

于 2010-03-04T22:28:50.633 に答える
0

これは PDO の派生物のように見えるので、おそらく次のようになるはずです。

$qry = new SQLQuery;
$sqlString = 'SELECT * FROM database.table WHERE table.text=? AND table.text2=?'
$qry->prepare($sqlString);
$qry->execute(array($textVar, $text2Var));
于 2010-03-04T22:42:22.223 に答える