验证并将详细信息插入db

时间:2014-07-14 11:33:25

标签: php

我需要将许多文档的详细信息(名称,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());
                  }

          }
    }
}  

4 个答案:

答案 0 :(得分:1)

使用$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_*。并使用prepared statements

答案 1 :(得分:0)

更改

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

要:

$insert = INSERT into table_name values(" values");
mysql_query($insert) or die(mysql_error());
<\ n>在其他情况下

答案 2 :(得分:0)

问题在于if语句

中的 $ result 变量

(if(($ outcome)&amp;&amp;(mysql_num_rows($ result)&gt; 0)){)

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

答案 3 :(得分:-1)

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

然后,您的INSERT语句错误。

INSERT INTO table (col1) VALUES (value_for_col1);