这是mySQL数据库中的animals
表:
| id | animal | name | number |
|----|--------|------|--------|
| 2 | cat | john | 6345 |
| 2 | mouse | fred | 7463 |
| 3 | monkey | noah | 2342 |
我从文本文件中插入数据,如下所示(例如):
animal=dog
name=alan
animal=frog
name=sam
animal=bird
name=mike
这是我的代码:
$id = 1
$sql = "INSERT INTO animals (animal,name,id) values(?,?,?)";
foreach($list as $row) {
$q->execute(array($row['animal'], $row['name'], $id));
}
插入后,我的animals
表如下所示:
| id | animal | name | number |
|----|--------|------|--------|
| 1 | dog | alan | |
| 1 | frog | sam | |
| 1 | bird | mike | |
| 2 | cat | john | 6345 |
| 2 | mouse | fred | 7463 |
| 3 | monkey | noah | 2342 |
稍后我有另一个文本文件,如下所示:
number=1425
number=9824
number=9932
数字的顺序与第一个文本文件中的数据完全相同。所以我想要做的只是添加数字,以便我的表格看起来像这样:
| id | animal | name | number |
|----|--------|------|--------|
| 1 | dog | alan | 1425 |
| 1 | frog | sam | 9824 |
| 1 | bird | mike | 9932 |
| 2 | cat | john | 6345 |
| 2 | mouse | fred | 7463 |
| 3 | monkey | noah | 2342 |
但我不知道如何在一个声明中这样做。我希望你能提供帮助。非常感谢你!
答案 0 :(得分:1)
我认为你想要更新"数字"在你的SQL表中?
如果是这样,您将需要某种标识符来标识应受影响的行。所以,如果你想设置数字= 235443534,其中动物等于"狗"那么你需要将该标识符放在文本文件中。你可能想让文件冒号分隔(;)?
获得标识后,您需要读取文件并循环播放。
<?php
$fileName = "FileNameHere.txt";
$fileToOpen = fopen($fileName,"r") or die("Error opening file :'(");
$readFile = fread($fileToOpen,filesize($fileName));
foreach($readFile as $fileLine){
$item = split(";",$fileLine); //this will return an array {dog,34423}
$sql = "UPDATE `animals' SET number='".$item[1]."' WHERE animal='".$item[0]."'";
//Run your SQL and any cool code here...
}
fclose($fileToOpen);
?>
有关SQL更新和使用文件的更多信息,请查看W3Schools教程。他们真的很棒! :d