我正在尝试编写代码,如果mysql表中有与您要插入的相同的数据,则什么也不做,但如果没有,则插入到表中。
这是我到目前为止的代码:
for($i=0;$i<count($TitleArray);$i++){
$sql = "SELECT * FROM ytable WHERE Title *LIKE the one I am about to insert"
if (Data about to insert already exists in table){
"do nothing";
}*
else{
$sql = "INSERT INTO ytable (Title, Pubdate, Link, Tweeted, Created)
VALUES ('$TitleArray[$i]', '$PubdateArray[$i]', '$LinkArray[$i]', NULL, $created)";
mysql_query($sql,$db_con);
}我需要帮助写代码从第一个*到下一个*。请帮帮忙
发布于 2015-08-19 14:54:50
将“标题”字段设置为唯一键,然后简单地使用INSERT IGNORE
for($i=0;$i<count($TitleArray);$i++){
$sql = "INSERT IGNORE INTO ytable (Title, Pubdate, Link, Tweeted, Created) VALUES ('$TitleArray[$i]', '$PubdateArray[$i]', '$LinkArray[$i]', NULL, $created)";
mysql_query($sql,$db_con);
}语句INSERT IGNORE将检查重复键是否有任何问题。如果有的话,它不会插入任何东西。如果没有问题,则会插入您的数据。
编辑
如果您不能修改您的表,就像您在注释中所说的那样,那么使用下面的代码。您的函数是mysql_num_rows (最好使用mysqli而不是mysql)
for($i=0;$i<count($TitleArray);$i++){
$sql = 'SELECT * FROM ytable WHERE Title LIKE "the one I am about to insert"';
$res = mysql_query($sql);
if (empty(mysql_num_rows($res))){
$sql_insert = "INSERT INTO ytable (Title, Pubdate, Link, Tweeted, Created) VALUES ('$TitleArray[$i]', '$PubdateArray[$i]', '$LinkArray[$i]', NULL, $created)";
$res_insert = mysql_query($sql_insert,$db_con);
}
}发布于 2015-08-19 14:57:00
尝尝这个
INSERT INTO ytable (Title, Pubdate, Link, Tweeted, Created)
SELECT $TitleArray[$i], $PubdateArray[$i], $LinkArray[$i], NULL, $created FROM ytable
WHERE NOT EXISTS (
SELECT title FROM ytable WHERE Title='abcd'
) LIMIT 1;发布于 2015-08-19 15:13:41
我想这对你会有用的。
for($i=0;$i<count($TitleArray);$i++){
$sql = "SELECT * FROM ytable WHERE Title='".$TitleArray[$i]."' AND Pubdate='".$PubdateArray[$i]."' AND Link='".$LinkArray[$i]."' AND Tweeted='NULL' AND Created='".$created."'";
$dataAvailable = mysql_query($sql,$db_con);
if (mysql_num_rows($sql) > 0) {
"do nothing";
}
else{
$sql = "INSERT INTO ytable (Title, Pubdate, Link, Tweeted, Created) VALUES ('$TitleArray[$i]', '$PubdateArray[$i]', '$LinkArray[$i]', NULL, $created)";
mysql_query($sql,$db_con);
}看看这个。
https://stackoverflow.com/questions/32088335
复制相似问题