Php 在一个日期插入避免重复的记录,并在下一个日期插入相同的记录
我每天都要在Mysql数据库中插入一些项目。数据包含重复的记录,我只想插入不同的记录,不需要重复项。我已经这样做了,但是当我第二天运行代码时,它会用新的数据替换数据。我不想丢失以前的数据。我需要以前和新的数据,这两天都不重复数据 有人这样工作过吗??提前谢谢Php 在一个日期插入避免重复的记录,并在下一个日期插入相同的记录,php,mysql,sql-insert,Php,Mysql,Sql Insert,我每天都要在Mysql数据库中插入一些项目。数据包含重复的记录,我只想插入不同的记录,不需要重复项。我已经这样做了,但是当我第二天运行代码时,它会用新的数据替换数据。我不想丢失以前的数据。我需要以前和新的数据,这两天都不重复数据 有人这样工作过吗??提前谢谢 <?php set_time_limit(0); $dbhost = "localhost"; $dbuser = "root"; $dbpass = ""; $dbname = "crawl"; $conn = mysql_con
<?php
set_time_limit(0);
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "crawl";
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Error connecting to database");
mysql_select_db($dbname, $conn);
$product_titles = array();
$q1 = mysql_query("SELECT * FROM `product-title`");
while($res1 = mysql_fetch_assoc($q1))
{
$product_titles[] = $res1['title'];
}
$q2 = mysql_query("SELECT * FROM `product-list-url`");
while($res2 = mysql_fetch_assoc($q2))
{
$url = $res2['url'];
$html = file_get_contents($url);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
foreach($product_titles as $product_title)
{
$found = $xpath->evaluate("boolean(//span[contains(text(), '$product_title')])");
if($found == false)
{
//echo "Not Found";
}
if($found == true)
{
$elements = $xpath->evaluate("//span[contains(text(), '$product_title' )]/following-sibling::div/span[@class='list_sale_price']");
if (!is_null($elements))
{
foreach ($elements as $element)
{
$nodes = $element->childNodes;
foreach ($nodes as $node)
{
$price = $node->nodeValue;
$price1 = preg_replace('/[^0-9-.]/','',$price);
$date = date('y-m-d');
mysql_query("INSERT IGNORE INTO `prices` (`url`, `ptitle`, `price`, `date`) VALUES ('$url','$product_title', '$price1', '$date')") or die(mysql_error()); }
}
}
}
}
}
}
?>
不要在表/列标识符中使用“-”。它会让你发疯你的表格结构是否满足了INSERT IGNORE
按预期工作所需的要求?是的,我已为Ptitle指定了唯一属性你是否确保“$product\u title”是同一个字母,并且删除了任何多余的空白?检查数据库中ptitle的字符串长度