我必须在MySQL数据库中插入一些字符串。 问题是每次我使用“`”或“'”时都会导致QSqlquery执行错误。 我该如何防止这种情况?
答案 0 :(得分:4)
在运行查询时始终使用绑定变量,SQL查询中的特殊字符永远不会出现问题。以下是documentation:
中的示例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();
答案 1 :(得分:0)
`和'是SQL中的注释,你必须用反斜杠“保护”它们,如此
Select bla
From blo
where name = "some \`test\`"
答案 2 :(得分:0)
您应添加转义序列以添加此类特殊字符,例如'
,`
,\
,"
请在他们面前添加\
添加。
e.g。
'
使用\'
"
使用\"
\
使用\\
`
使用\`
答案 3 :(得分:-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
希望能帮到你!