这是我的代码:
$q=mysql_query("SELECT * FROM `table1` WHERE name like '%$searchText%'");
while($e=mysql_fetch_assoc($q))
//$output[]=$e;
//echo $e['NAME'];
{
$name = $e['NAME'];
$brand = $e['BRAND'];
$category = $e['CATEGORY'];
$query = "INSERT INTO table2 (brand, name, category) VALUES ('$brand', '$name', '$category')";
$result = mysql_query($query) or die("Unable to insert because : " . mysql_error());
}
因为在“BRAND”中,可能会有一些数据,如“First's Choice” 在这种情况下,由于错误,我无法插入数据库 如何插入包含单引号的数据? THX
答案 0 :(得分:3)
你需要在值上使用mysql_real_escape_string
,无论如何你应该这样做。这应该适当地逃避你的插入价值。
$name = mysql_real_escape_string($e['NAME']);
$brand = mysql_real_escape_string($e['BRAND']);
$category = mysql_real_escape_string($e['CATEGORY']);
$query = "INSERT INTO table2 (brand, name, category) VALUES ('$brand', '$name', '$category')";
答案 1 :(得分:1)
答案 2 :(得分:1)
您必须使用:
$brand = mysql_real_escape_string($brand)
string mysql_real_escape_string (string $ unescaped_string [,resource $ link_identifier = NULL])
逃避特殊字符 unescaped_string,考虑到当前的字符集 连接,以便将它放在mysql_query()中是安全的。如果 要插入二进制数据,必须使用此功能。 (..)
答案 3 :(得分:1)
Try below code
$q=mysql_query("SELECT * FROM `table1` WHERE name like '%$searchText%'");
while($e=mysql_fetch_assoc($q))
//$output[]=$e;
//echo $e['NAME'];
{
$name = $e['NAME'];
$brand = mysql_real_escape_string($e['BRAND']);
$category = $e['CATEGORY'];
$query = "INSERT INTO table2 (brand, name, category) VALUES ('$brand', '$name', '$category')";
$result = mysql_query($query) or die("Unable to insert because : " . mysql_error());
}
答案 4 :(得分:1)
有两种方法可以实现这一目标。您可以先在其上运行转义字符串:
$newbrand = mysql_real_escape_string($brand);
并插入$ newbrand。当你调用它时,你必须做strpslashes($ newbrand);
或者你可以这样做:
$search = array("'");
$newbrand = str_replace($search,'',$brand);
答案 5 :(得分:0)
我拉着头发来解决这个问题,最后我对这个解决方案感到满意。 Try this