我是一个PHP菜鸟。
我有一个数据库,我将每周用CSV更新一次。到目前为止,我已经设法将文件上传到服务器,用PHP打开文件,然后在我的表中插入数据。
现在我想返回添加的唯一记录(在屏幕上或文件中)。我该怎么做?
答案 0 :(得分:1)
是什么让他们与众不同?我们需要有关您的架构的更多信息。
无论如何,您可以轻松添加默认为date_added
的{{1}}列。然后,您可以运行一个查询,对CURRENT_TIMESTAMP
降序进行排序,以找出添加的内容。
关于仅提取唯一结果..好吧,你不应该重新插入一个唯一的行,所以如果你正确地避免这样做,那么date_added
将只反映真正的新条目。
以下是代码示例:
首先,将date_added
列添加到您的表格中:
date_added
ALTER TABLE your_table ADD COLUMN date_added TIMESTAMP DEFAULT CURRENT_TIMESTAMP
会自动使用当前日期,因此您无需更改现有DEFAULT CURRENT_TIMESTAMP
代码的任何内容。
使用此列,您现在可以轻松检查为特定日期添加了哪些记录:
INSERT
-- Rows for March 29, 2010
SELECT DISTINCT * FROM your_table WHERE DATE(`date_added`) = '2010-03-29';
将确保您只看到在该日期添加的唯一行。
这是另一个方便的查询,它将提取“今天的记录”:
DISTINCT
您唯一需要记住的是现有记录的日期为0,因为在插入时该列不存在。
答案 1 :(得分:0)
如果要插入带有时间戳的新行,则可以执行类似这样的操作
// Insert CSV into the DB with this timestamp
$todays_insert_time = time();
...
// Get unique rows from today
$unique_rows = mysql_query("SELECT DISTINCT `whatever_column_makes_the_row_unique` FROM `some_table` WHERE `insert_time`=" . $todays_insert_time);