0

MySQL データベースにいくつかの文字列を挿入する必要があります。問題は、" ` " または " ' " を使用するたびに、QSqlquery の実行でエラーが発生することです。どうすればこれを防ぐことができますか?

4

4 に答える 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 に答える