实际上,我正在尝试输入与该字符串相似的字符串
放入MySQL(这是一行,为了可读起见,分成两行)

fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;
stroke-linecap:butt;stroke-  linejoin:miter;stroke-opacity:1


MySQL允许我使用phpMyAdmin将字符串插入字段中,并且phpMyAdmin将字段添加为(为了便于阅读,再次将其分成两行):

('fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-
linecap:butt;stroke-linejoin:miter;stroke-opacity:1'' in ''field list')


使用我的PHP代码,我尝试将in字段列表部分添加到我的代码中,如下所示

$rectangle_array[$rstyle] = $rectangle_array[$rstyle] . "' in ''field list'";
$mysql_rectangle_table_entry = "INSERT INTO $mysql_table VALUES
                               ($rectangle_array[$rstyle], 'rect',
                               $rectangle_array[$rid], $rectangle_array[$rwidth],
                               $rectangle_array[$rheight], $rectangle_array[$rx],
                               $rectangle_array[$ry])";
$run = mysql_query($mysql_rectangle_table_entry) or die(mysql_error());


在运行代码时,我收到以下错误。


  您的SQL语法有误。检查与您的MySQL服务器版本相对应的手册,以在第1行的':#0000ff; fill-rule:evenodd; stroke:#000000; stroke-width:1px; stroke-linecap:butt; s'附近使用正确的语法


我该怎么做才能使这项工作?

最佳答案

如评论中所述…

您可以在插入之前使用mysql_real_escape_string()转义任何MySQL特殊字符。

例如:

$sql = "INSERT INTO my_table (string_column) VALUES ('" . mysql_real_escape_string($string) .  "')";


另一种选择是将Prepared Statements与PHP的MySQLiPDO一起使用。

10-05 20:46
查看更多