我尝试使用php脚本将从文本文件中获取的数据添加到我的数据库,这是脚本:
foreach($lines as $name){
$bolunmus=explode(" ", $name);
$add = false;
if(!exist_in_db($bolunmus[0], $bolunmus[1], $bolunmus[2])){
$add = mysql_query("
INSERT INTO people(name, surname, age)
VALUES('$bolunmus[0]', '$bolunmus[1]', '$bolunmus[2]');", $con);
}
else{
echo (" could not write it.<br>");
}
if($add)
echo $bolunmus[0]." ".$bolunmus[1]." ".$bolunmus[2]." Added to database.";
}
// this is my control function, which will return
// true if data already exist in database,
// else it will return false.
function exist_in_db($name, $surname, $age){
$result = mysql_query("
SELECT * FROM people ORDER BY id
");
while($row = mysql_fetch_array($result)){
if($row['name']==$name && $row['surname']==$surname || $row['age']==$age){
echo $row."could not write it.";
return true;
}else{
return false;
}
}
}
?>
实际上,问题是当我尝试执行此脚本时,它从textfile读取,如果该用户不存在,则添加,直到此处没有任何问题。但是当我再次尝试执行它时,它会为用户添加相同的输出,例如“bla bla 0被添加到数据库中”。如果我没有对文本文件进行任何更改,我希望它再次控制,如果该用户存在,请不要添加它,谢谢大家。
答案 0 :(得分:0)
if($row['name']==$name && $row['surname']==$surname || $row['age']==$age)
^ ^
这里应该有一个括号。
if(($row['name']==$name && $row['surname']==$surname) || $row['age']==$age)
要进一步调试,请尝试var_dump($bolunmus);