如何更新mySQL数据库中的数据?

时间:2015-10-21 09:00:19

标签: php mysql

这是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  |

但我不知道如何在一个声明中这样做。我希望你能提供帮助。非常感谢你!

1 个答案:

答案 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