MySQL データベースにいくつかの文字列を挿入する必要があります。問題は、" ` " または " ' " を使用するたびに、QSqlquery の実行でエラーが発生することです。どうすればこれを防ぐことができますか?
質問する
2012 次
4 に答える
4
クエリを実行するときは常にバインド変数を使用してください。そうすれば、SQL クエリの特殊文字で問題が発生することはありません。ドキュメントの例を次に示します。
QSqlQuery query;
query.prepare("INSERT INTO person (id, forename, surname) "
"VALUES (:id, :forename, :surname)");
query.bindValue(":id", 1001);
query.bindValue(":forename", "Bart");
query.bindValue(":surname", "Simpson");
query.exec();
于 2013-09-27T07:48:18.690 に答える
0
、、、などの特殊文字を追加するには、エスケープ シーケンスを追加する必要が'
あり`
ます\
。"
それらの前に追加して追加してください\
。
例えば
'
使用するために\'
"
使用するために\"
\
使用するために\\
`
使用するために\`
于 2013-09-27T07:47:52.273 に答える
0
` と ' は SQL のコメントです。\ のようにバックスラッシュで「保護」する必要があります。
Select bla
From blo
where name = "some \`test\`"
于 2013-09-27T07:43:10.367 に答える
-2
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());
// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
PHP では、mysql_real_escape_string 関数を使用できます: http://php.net/manual/en/function.mysql-real-escape-string.php
希望はあなたを助けます!
于 2013-09-27T07:44:30.467 に答える