0

嗨,我有一张充满公司名称的表,我遇到的问题是它充满了重复。

为了解决这个问题,我使用以下代码从一个表中删除数据,然后使用 DISTINCT 将其插入到另一个表中。

当我运行代码时,我不断收到以下错误,

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 4 行的“集团控股有限公司”附近使用正确的语法

如果我删除公司名称变量,它会很好地插入所有 IP 地址,但是一旦我尝试插入公司名称,就会出现上述错误。

  $query = "SELECT DISTINCT ip_address, company_name, FROM companydetail1";      
  $result = mysql_query($query) or die(mysql_error());
  while($row = mysql_fetch_array($result)){

  $ip_address = $row['ip_address'];
  $company_name = $row['company_name'] ;
  mysql_real_escape_string($company_name);
  mysql_real_escape_string($ip_address);

  mysql_query("INSERT INTO companydetail30 (ip_address, company_name) VALUES ('$ip_address', '$company_name') ") or die(mysql_error());
   }

任何建议,将不胜感激。

谢谢

4

2 回答 2

1

您的代码不仅在当前状态下无法工作,而且还容易受到 SQL 注入的攻击,因为您错误地使用了mysql_real_escape_string

mysql_real_escape_string函数将转义字符串作为其返回值返回,因此您需要将其分配回变量以保存转义字符串:

$company_name = mysql_real_escape_string($company_name);
$ip_address = mysql_real_escape_string($ip_address);
于 2013-11-04T13:35:05.243 回答
0

在您的查询中具有明显的错误

        $query = "SELECT DISTINCT ip_address, company_name, FROM companydetail1"; 

在 company_name 后面有一个“,”它不应该是

查询应该是这样的

       $query = "SELECT DISTINCT ip_address, company_name FROM companydetail1"; 

其次,您应该这样做。

       $company_name = mysql_real_escape_string($company_name);
       $ip_address = mysql_real_escape_string($ip_address);
于 2013-11-04T13:38:08.623 回答