Php 跳过MySQL插入的正确方法是什么
我有一个foreach语句,通过JSON数据循环并将内容插入MySQL。如果$author字符串显示特定用户名,我想跳过插入。下面的方法可以吗,还是最好在数据库级别处理Php 跳过MySQL插入的正确方法是什么,php,mysql,foreach,Php,Mysql,Foreach,我有一个foreach语句,通过JSON数据循环并将内容插入MySQL。如果$author字符串显示特定用户名,我想跳过插入。下面的方法可以吗,还是最好在数据库级别处理 foreach ($response['data'] as $data) { $id = $data['id']; $created_time = $data['created_time']; $thumbnail = $data['images']['low_reso
foreach ($response['data'] as $data) {
$id = $data['id'];
$created_time = $data['created_time'];
$thumbnail = $data['images']['low_resolution']['url'];
$author = $data['user']['username'];
$caption = mysql_real_escape_string($data['caption']['text']);
$link = $data['link'];
$likes = $data['likes']['count'];
if ($author == 'USERNAME') {
mysql_close($con);
} else {
$query = "INSERT IGNORE INTO pbr (id, created_time, thumbnail, author, caption, link, likes, hash) VALUES ('$id', '$created_time', '$thumbnail', '$author', '$caption', '$link', '$likes', '$hash')";
$result = mysql_query($query) or die(mysql_error());
mysql_close($con);
}
}
为什么要在每次循环迭代时关闭SQL连接 为什么不干脆做:
if ($author == 'USERNAME')
continue; // next iteration
$query = "INSERT IGNORE INTO pbr (id, created_time, thumbnail, author, caption, link, likes, hash)
VALUES ('$id', '$created_time', '$thumbnail', '$author', '$caption', '$link', '$likes', '$hash')";
$result = mysql_query($query) or die(mysql_error());
顺便说一句,您应该将参数绑定到查询中,或者至少使用mysql\u real\u escape\u string(),否则将出现包含引号的值的问题(目前,您只对变量$caption执行此操作,我猜$link、$thumbnail和$username也可以包含单引号)。为什么要在循环的每次迭代结束时关闭连接?