我刚开始使用php,我想知道是否有人可以提供帮助。我有这个
$sql="INSERT INTO $tbl_name SET date='$mydate' , event='$myevent'";
$result=mysql_query($sql);
我需要知道如何让它查看事件是否存在,如果它确实我需要它什么都不做,如果它没有然后插入它!
我刚开始使用php,我想知道是否有人可以提供帮助。我有这个
$sql="INSERT INTO $tbl_name SET date='$mydate' , event='$myevent'";
$result=mysql_query($sql);
我需要知道如何让它查看事件是否存在,如果它确实我需要它什么都不做,如果它没有然后插入它!
这可以通过 MySQL 单独完成。
通过在表上运行以下 MySQL 命令为事件列设置唯一键:
CREATE UNIQUE INDEX `i_event` ON `TABLE_NAME_GOES_HERE` (`event`);
欲了解更多信息:http ://dev.mysql.com/doc/refman/5.0/en/create-index.html
对您希望在 $tbl_name 变量中看到的每个可能的表执行此操作。
然后,更改您的 PHP 查询:
$sql="INSERT IGNORE INTO $tbl_name SET date='$mydate' , event='$myevent'";
$result=mysql_query($sql);
有关插入忽略的更多信息:http: //dev.mysql.com/doc/refman/5.5/en/insert.html
INSERT IGNORE 只是按照它所说的那样做......它将尝试插入该行,除非它未能通过验证(在这种情况下,来自您声明的索引必须是唯一的)。
尝试:
$query = mysql_query("SELECT $myevent from $tbl_name ")
$rows = mysql_num_rows($query)
if ($num_rows > 0) {
// do nothing
}
else {
$sql = "INSERT INTO $tbl_name SET date='$mydate' , event='$myevent'";
$result = mysql_query($sql);
}
将其拆分为 2 个查询:
1)检查事件是否存在。如果是,则什么也不做,否则插入一个新事件
2) 继续您的查询。这样,在插入数据时事件就会存在