使用单引号将数据添加到php mysql中

时间:2012-03-20 03:48:07

标签: php mysql

这是我的代码:

$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

6 个答案:

答案 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)

请参阅PHP Documentation

  

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