我必须在 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
` 和 ' 是 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 回答