我有一些代码我试图开始工作。我正在寻找的是让我查询一个网站,然后显示结果并上传到数据库。我希望它通过检查日期来忽略我工作的重复项。问题是当用户搜索另一个股票代码时,它没有插入到DB中,因为日期是相同的。有人有什么建议吗?
<?php
$con = mysql_connect("localhost","user","pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("bbpinpal_stocks", $con);
mysql_query("INSERT INTO stocks (stock_name, stock_value, stock_perc, date)
VALUES ('$name', '$last','$perc2', '$date')");
$result = mysql_query("SELECT * FROM stocks");
echo "<table border='1'>
<tr>
<th>Name</th>
<th>Value</th>
<th>Percent Change</th>
<th>Date</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['stock_name'] . "</td>";
echo "<td>" . $row['stock_value'] . "</td>";
echo "<td>" . $row['stock_perc'] . "</td>";
echo "<td>" . $row['date'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
我已将日期设为独特,但我知道这是我的问题。我怎么能这样,它检查名称和日期,如果匹配忽略
答案 0 :(得分:1)
将UNIQUE
上的date
索引替换为(stock_name, date)
上的索引:
ALTER TABLE stocks
DROP KEY date,
ADD UNIQUE KEY (stock_name, date)
答案 1 :(得分:0)
我已将日期设为独特,但我知道这是我的问题
这很可能就是问题所在。为什么不使用其他列来唯一标识行?
http://en.wikipedia.org/wiki/Unique_key
“..每个唯一键由该数据实体的一个或多个数据属性组成。”
答案 2 :(得分:0)
INSERT IGNORE会阻止您使用数据库中已有的主键添加数据。您可以拥有一个由2个字段组成的主键。