验证并将详细信息插入数据库


verifying and inserting details into db

我需要将许多文档的详细信息(名称,id,号码)插入数据库,如果它们不存在,如果它们存在,我只需要对任何更改的信息进行更新。我已经到达以下代码,但它不工作。我是新手,需要帮助。

foreach($A->Documents -> Document as $Document)
 {
  $query = "SELECT * from table where id = '".$Document->id."'";
   $outcome = mysql_query($query) or die(mysql_error());
      if(($outcome)&&(mysql_num_rows($result)>0)){
       echo "Document already available" ;
         while($row = mysql_fetch_object($outcome)){
           if(!($outcome->name == $document->name)){
                  $update= "UPDATE table SET name= '.$Document->Name.'";
                  mysql_query($update) or die(mysql_error());
                  }
           else 
                  {
                  $insert= "INSERT table SET name= '.$Document->Name.'";
                  mysql_query($update) or die(mysql_error());
                  }
          }
    }
}  

$row->name代替$outcome->name。你的INSERT声明是错误的。

while($row = mysql_fetch_object($outcome)){
  if(!($row->name == $document->name)){
    $update = "UPDATE table SET name ='".$Document->Name."' WHERE id = ".$Document->id;
    mysql_query($update) or die(mysql_error());
  }
  else {
    $insert = "INSERT INTO table (name) VALUES('".$Document->Name."')";
    mysql_query($insert) or die(mysql_error()); // $insert not $update
  }
}

注意:停止使用mysql_*函数!使用PDOmysqli_*代替。使用预处理语句

改变

mysql_query($update) or die(mysql_error());

:

$insert = INSERT into table_name values(" values");
mysql_query($insert) or die(mysql_error());

问题是$result变量与in if语句

(如果((结果),和(mysql_num_rows(结果)> 0)){)

应该是$outcome,因为您将查询输出初始化为$outcome变量

首先,不要使用mysql_函数。阅读文档(阅读警告)。使用mysql或PDO代替。

那么,你的INSERT语句是错误的。

INSERT INTO table (col1) VALUES (value_for_col1);