我需要将许多文档的详细信息(名称,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_*
函数!使用PDO
或mysqli_*
代替。使用预处理语句
改变
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);