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

` 和 ' 是 SQL 中的注释,你必须用反斜杠 \ 像这样“保护”它们

Select bla
From blo
where name = "some \`test\`"
于 2013-09-27T07:43:10.367 回答
0

您应该添加转义序列以添加此类特殊字符,如', `, \,"

请在它们之前添加\它们。

例如

' 使用\'

" 使用\"

\ 使用\\

` 使用\`

于 2013-09-27T07:47:52.273 回答
-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 回答