Mysql 插入包含“;`”;或“'”;到数据库表-Qt
我必须在MySQL数据库中插入一些字符串。 问题是每次使用“`”或“`”时,都会导致QSqlquery执行中出现错误。Mysql 插入包含“;`”;或“'”;到数据库表-Qt,mysql,qt,qsqlquery,Mysql,Qt,Qsqlquery,我必须在MySQL数据库中插入一些字符串。 问题是每次使用“`”或“`”时,都会导致QSqlquery执行中出现错误。 如何防止这种情况发生?`and'是SQL中的注释,您必须使用反斜杠来“保护”它们\n如下所示 Select bla From blo where name = "some \`test\`" 在php中,您可以使用mysql\u real\u escape\u字符串函数: 希望能帮助你 您应该添加转义序列以添加此类特殊字符,如,,,\,“ 请通过在它们之前添加\来添加它们
如何防止这种情况发生?`and'是SQL中的注释,您必须使用反斜杠来“保护”它们\n如下所示
Select bla
From blo
where name = "some \`test\`"
在php中,您可以使用mysql\u real\u escape\u字符串函数:
希望能帮助你 您应该添加转义序列以添加此类特殊字符,如
,,,\
,“
请通过在它们之前添加\
来添加它们
e、 g
对于”
使用\'
对于“
使用\”
对于\
使用\\
对于`
使用\`
在运行查询时始终使用绑定变量,您在SQL查询中永远不会遇到特殊字符问题。以下是来自的示例:
当然你需要了解SQL注入。mavroprovato给了你一个完美的答案。这到底有什么帮助?“保护”通常被称为“与@TimZaman一起逃离”,你是对的,但我的英语很差,请随意编辑帖子:)
// 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));
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();