好的,我有一个名为具有此结构的请求的数据库表
mysql> desc requests;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| artist | varchar(255) | YES | | NULL | |
| song | varchar(255) | YES | | NULL | |
| showdate | date | YES | | NULL | |
| amount | float | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
以下是一些示例数据
+----+-----------+-------------------------+------------+--------+
| id | artist | song | showdate | amount |
+----+-----------+-------------------------+------------+--------+
| 6 | Metallica | Hello Cruel World | 2010-09-15 | 10.00 |
| 7 | someone | Some some | 2010-09-18 | 15.00 |
| 8 | another | Some other song | 2010-11-10 | 45.09 |
+----+-----------+-------------------------+------------+--------+
我需要一种方法来为用户提供一种上传具有相同结构的csv的方法,并根据csv中的内容更新或插入。我在网上发现了许多脚本,但大多数都有硬编码的csv,这不是我需要的。我需要用户能够上传csv ...用PHP来轻松....
以下是csv
的示例id artist song showdate amount
11 NewBee great stuff 2010-09-15 12.99
10 anotherNewbee even better 2010-09-16 34.00
6 NewArtist New song 2010-09-25 78.99
正如你所看到的,我已经在数据库中已经有了id 6,需要更新..其他两个将被插入
我不是要求有人写整个剧本,但是如果我可以在上传时获得一些指示,那么从哪里开始....谢谢
答案 0 :(得分:2)
按如下所示创建商店程序并进行测试。这是作品
CREATE proc csv
(
@id int,
@artist varchar(50),
@songs varchar(100),
@showdate datetime,
@amount float
)
as
set nocount on
if exists (select id from dummy1 where id=@id) -- Note that dummy1 as my table.
begin
update dummy1 set artist= @artist where id=@id
update dummy1 set songs=@songs where id=@id
update dummy1 set showdate=@showdate where id=@id
update dummy1 set amount=@amount where id=@id
end
else
insert into dummy1 (artist,songs,showdate,amount)values(@artist,@songs,@showdate,@amount)
Go
答案 1 :(得分:1)