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

Php 如果条目被修改,则从文本文件更新数据库,并添加任何其他新条目,php,mysql,Php,Mysql,如果标题有点混乱,我很抱歉,但我无法更好地描述我的问题 现在,我想做的是: 首先,我有一个包含如下数据的文件: 头衔 标签 一, 二, 头衔 描述 等 接下来,我将该文件上传到我的站点,然后该站点继续使用所述数据制作一个数组,然后将其插入到我的数据库中。但这不是预期的行为。 现在,如果我再次上传同一个文件,它将重新插入所有内容并复制所有条目 我想做的是检查文件中的数据是否已经添加,不做任何操作。如果它被修改了,我想更新已经进行了更改的数据库,而不是复制任何内容 以下是我的尝试: $regis

如果标题有点混乱,我很抱歉,但我无法更好地描述我的问题

现在,我想做的是:

首先,我有一个包含如下数据的文件:

  • 头衔
  • 标签
  • 一,
  • 二,
  • 头衔
  • 描述
接下来,我将该文件上传到我的站点,然后该站点继续使用所述数据制作一个数组,然后将其插入到我的数据库中。但这不是预期的行为。 现在,如果我再次上传同一个文件,它将重新插入所有内容并复制所有条目

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

以下是我的尝试:

$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)");

我不确定我的代码出了什么问题,或者我的方法是否正确

您可以这样做:

$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,则更新,否则不执行任何操作…

表上的主键是什么?当前,它是不在数组中的app_id。app_id也设置为自动递增。您需要提供副本的app_id才能在复制键上使用
。您当前正在做的是说“嘿,如果您在键控值上获得了一个重复的行,那么更新。哦,在这里,只需为这些数据生成一些键”,然后想知道为什么它不更新这些行。