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才能在复制键上使用
。您当前正在做的是说“嘿,如果您在键控值上获得了一个重复的行,那么更新。哦,在这里,只需为这些数据生成一些键”,然后想知道为什么它不更新这些行。