0

实际上,我正在尝试做的是在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 代码,我尝试将字段列表部分添加到我的代码中,如下所示

$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' 附近使用正确的语法

我能做些什么来完成这项工作?

4

2 回答 2

2

如评论中所述……</p>

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

例如:

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

另一种选择是在PHP 的MySQLiPDO中使用Prepared Statements

于 2012-04-25T18:54:17.040 回答
1

您可能想查看准备好的语句mysql_real_escape_string以转义可能会破坏您的 INSERT 的特殊字符。

于 2012-04-25T18:53:36.673 回答