Php 撇号错误
我使用PHP和MySQL作为主要语言,而TinyMCE用于WYSIWYG功能。问题是每次我试图在文本编辑器上放置一个撇号时,我都会遇到一个MySQL错误。错误如下所示:Php 撇号错误,php,mysql,Php,Mysql,我使用PHP和MySQL作为主要语言,而TinyMCE用于WYSIWYG功能。问题是每次我试图在文本编辑器上放置一个撇号时,我都会遇到一个MySQL错误。错误如下所示: INSERT INTO table (textfield) VALUES ( 'your editor value' ); 执行查询时出错。 请将此错误通知web开发人员 注意:您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 这绝对是一个适合你的节目 马尼拉国际语言学院('在第1行 该语句将
INSERT INTO table (textfield) VALUES ( 'your editor value' );
执行查询时出错。
请将此错误通知web开发人员
注意:您的SQL语法有错误;检查手册
对应于您的MySQL服务器版本,以便使用正确的语法
这绝对是一个适合你的节目
马尼拉国际语言学院('在第1行
该语句将我引向这组代码:
function ExecuteQuery($strquery){
$rs = mysql_query("$strquery") or
die('<br><br>An error occured upon executing query.<br>Please notify the web developer about this error.<br><br>NOTE: '.mysql_error());
return $rs;
}
函数执行($strquery){
$rs=mysql\u查询($strquery)或
die('
执行查询时发生错误。
请将此错误通知web开发人员。
注意:'.mysql_error());
返回$rs;
}
但我似乎不明白这个问题。这里需要一些帮助。非常感谢。我想您的查询是这样的
INSERT INTO table VALUES ('blah blah blah');
现在,想象一下当您试图插入的文本包含单引号/撇号时会发生什么
INSERT INTO table VALUES ('This won't work.');
查询参数内容中的任何单引号都会破坏您的代码。您需要对查询参数使用mysql\u real\u escape\u string
更好的方法是,在准备好的语句中使用PDO或MySQLi。您的查询如下所示:
INSERT INTO table (textfield) VALUES ( 'your editor value' );
现在,您可能不会转义输入值,因此文本中的撇号会打断查询
INSERT INTO table (textfield) VALUES ( 'your ' editor value with apostrophe' );
要了解转义,还需要仔细查看红色框,因为撇号在Mysql中有特殊含义。正如Ian所说,您必须在
$strquery
上使用Mysql\u real\u escape\u string
不使用转义将导致严重的SQL注入安全问题
函数执行($strquery){
$rs=mysql\u查询(mysql\u real\u escape\u字符串($strquery))或
die('
执行查询时发生错误。
请将此错误通知web开发人员。
注意:'.mysql_error());
返回$rs;
}
请发布您尝试的查询。它们不再被维护。请参阅?改为了解,并使用或-将帮助您确定哪个查询。如果您选择PDO。我们如何帮助您在没有查询的情况下查找语法错误???类似问题如下: