PHP/MySQL - SQL语法错误?

Sla*_*hiS 0 php mysql

现在,当我提交角色时,'我得到下面列出的以下错误,然后当我提交单词时一切正常.我正在使用htmlentities(),我仍然得到这个错误.

如何防止此错误发生是否有一种方法可以允许或转换或停止'显示为错误的字符表单?

这是我得到的错误.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''')'
Run Code Online (Sandbox Code Playgroud)

Pas*_*TIN 6

您需要转义在SQL查询中发送的字符串.

为此,您可以使用该mysql_real_escape_string功能.

例如,您的代码可能看起来像这样(未经过测试,但这样的事情应该可以解决):

$str = "abcd'efh";
$sql_query = "insert into my_table (my_field) values ('" 
  . mysql_real_escape_string($str)
  . "')";
$result = mysql_query($sql_query);
Run Code Online (Sandbox Code Playgroud)


另一个解决方案(需要更多的工作,因为你将不得不更改更多的代码)将是使用预准备语句; 使用mysqli_*PDO - 但旧的mysql_*扩展名不可能.


编辑:如果这不起作用,你可以编辑你的问题,给我们更多的信息吗?就像导致错误的代码片段一样?