实际上,我尝试做的是输入类似于此字符串的字符串 进入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服务器版本对应的手册,以便在':#0000ff附近使用正确的语法; fill-rule:evenodd; stroke:#000000; stroke-width:1px; stroke-linecap:butt; s'在第1行
我可以做些什么来完成这项工作?
答案 0 :(得分:2)
如评论中所述......
您可以在插入之前使用mysql_real_escape_string()
来转义任何MySQL特殊字符。
例如:
$sql = "INSERT INTO my_table (string_column) VALUES ('" . mysql_real_escape_string($string) . "')";
另一种选择是将Prepared Statements与PHP的MySQLi或PDO一起使用。
答案 1 :(得分:1)
您可能希望查看prepared statements或mysql_real_escape_string以转义可能会破坏您的INSERT的特殊字符。