如果修改了条目,则从文本文件更新数据库并添加任何其他新条目

时间:2014-08-04 17:02:45

标签: php mysql

如果标题有点令人困惑,我很抱歉,但我无法更好地描述我的问题。

现在,这就是我要做的事情:

首先,我的文件中包含如下数据:

  • 标题
  • 标签
  • 1
  • 2
  • 标题
  • 描述

接下来,我将该文件上传到我的网站,然后继续创建包含所述数据的数组,然后将其插入我的数据库。但这不是预期的行为。 现在,如果我再次上传相同的文件,它将重新插入所有内容并复制所有条目。

我想要做的是检查文件中的数据是否已添加,什么也不做。如果它已被修改,我想更新已经进行了更改的数据库,而不是重复任何内容。

这是我尝试这样做的:

$register_ep_data = array(
                        'show' => $name,
                        'season' => $srNum,
                        'ep' => $epNum,
                        'app_name' => $epName,
                        'tag' => $tag,
                        'app_about' => $desc,
                        'app_website' => $imdb,
                        'app_release' => $release,
                        'type' => $type,
                        'app_code' => $Frame 
                    );

$update = array();
array_walk($register_ep_data, 'array_sanitize');

foreach ($register_ep_data as $field => $data) {
    if (!empty($data)) {
        $update[] = '`' . $field .'` = \'' . $data . '\'';
    }
}

mysql_query("INSERT INTO `shows` ($fields) VALUES ($data) ON DUPLICATE KEY UPDATE ($fields) VALUES ($data)");

我不确定我的代码有什么问题,或者我是否正确地执行此操作

1 个答案:

答案 0 :(得分:0)

你可以这样做:

$sql = "select count(*) from shows where 'show' = $name AND 
                        'season' = $srNum AND
                        'ep' = $epNum AND
                        'app_name' = $epName AND
                        'tag' = $tag AND
                        'app_about' = $desc AND
                        'app_website' = $imdb AND
                        'app_release' = $release AND
                        'type' = $type AND
                        'app_code' = $Frame ";
$result = mysql_query($sql);

如果$ result为0则更新其他什么都不做......