Php 从一个表中提取公司名称并将其插入另一个表时遇到问题

Php 从一个表中提取公司名称并将其插入另一个表时遇到问题,php,mysql,Php,Mysql,嗨,我有一张满是公司名称的桌子,我遇到的问题是它满是重复的 为了解决这个问题,我使用下面的代码从一个表中删除数据,然后使用DISTINCT将其插入到另一个表中 当我运行代码时,我不断得到以下错误 您的SQL语法有错误;查看与MySQL服务器版本相对应的手册,以了解第4行中使用near's Group Holdings Ltd')的正确语法 如果我删除company name变量,它会插入所有的ip地址,但是一旦我尝试插入一个company name,就会出现上面的错误 $query = "S

嗨,我有一张满是公司名称的桌子,我遇到的问题是它满是重复的

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

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

您的SQL语法有错误;查看与MySQL服务器版本相对应的手册,以了解第4行中使用near's Group Holdings Ltd')的正确语法

如果我删除company name变量,它会插入所有的ip地址,但是一旦我尝试插入一个company name,就会出现上面的错误

  $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());
   }
如有任何建议,将不胜感激


谢谢

您的代码不仅无法在当前状态下工作,而且还容易受到SQL注入的攻击,因为您使用的mysql\u real\u escape\u string不正确

mysql\u real\u escape\u string函数返回转义字符串作为其返回值,因此需要将其分配回变量以保存转义字符串:

$company_name = mysql_real_escape_string($company_name);
$ip_address = mysql_real_escape_string($ip_address);

在使用distinct的查询中,有一个错误

        $query = "SELECT DISTINCT ip_address, company_name, FROM companydetail1"; 
在公司名称后面有一个“,”不应该是

查询应该是这样的

       $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);

插入上是否有错误?如果使用mysqli/PDO和prepared语句,则不会出现此问题。这样做,您必须在将数据提交回数据库之前对其进行转义。或者,您可以使用INSERT INTO…SELECT INSTEADE如果SELECT查询正好提供您想要的数据,那么您首先不应该使用PHP,而是直接使用语法…谢谢,我将看一看Mysqli/PDO