Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 撇号错误_Php_Mysql - Fatal编程技术网

Php 撇号错误

Php 撇号错误,php,mysql,Php,Mysql,我使用PHP和MySQL作为主要语言,而TinyMCE用于WYSIWYG功能。问题是每次我试图在文本编辑器上放置一个撇号时,我都会遇到一个MySQL错误。错误如下所示: INSERT INTO table (textfield) VALUES ( 'your editor value' ); 执行查询时出错。 请将此错误通知web开发人员 注意:您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 这绝对是一个适合你的节目 马尼拉国际语言学院('在第1行 该语句将

我使用PHP和MySQL作为主要语言,而TinyMCE用于WYSIWYG功能。问题是每次我试图在文本编辑器上放置一个撇号时,我都会遇到一个MySQL错误。错误如下所示:

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。我们如何帮助您在没有查询的情况下查找语法错误???类似问题如下: