php-sql问题:IFEXISTS的使用


php sql question: use of IF EXISTS

我正在努力为SQL查询获取正确的语法。我已经看遍了我能看的,但似乎什么都看不出来。

我想检查一下数据库中是否有记录,例如

SELECT Date,Time FROM loadings WHERE Date='21-06-2011' AND Time ='7'

如果有,我可以更新它,如果没有,我需要先添加它,然后才能进行一些操作。

我试过

[php]

IF EXISTS(SELECT Date,Time FROM loadings WHERE Date='21-06-2011' AND Time ='7')
{
// Record exists do nothing
}
else
{
// Insert record
INSERT Date,Time INTO loadings VALUES Date='21-06-2011' AND Time ='7'
}

[/php]

有人能指导我使用正确的语法吗。

顺便说一句,刚刚找到这个网站,通读起来似乎很棒。特别是以前提交的答复中提出的建议。我把它们都看了一遍,但没有找到答案。

问候Trevor

您需要类似下面的代码

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);
$result = mysql_query("SELECT Date,Time FROM loadings WHERE Date='21-06-2011' AND Time ='7'", $link);
$num_rows = mysql_num_rows($result);
if $num_rows == 0 { code to insert } /* when query returns no rows insert into the database*/
?>

总结:不要使用保留字。

看起来你在用保留字。使用保留字会导致非常棘手的错误。

对于您的保留字段和变量,我会添加或a或某种前缀。

adate instead of date
atime instead of time

要查看保留单词列表,请转到此处。

http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

$rs = mysql_query("SELECT Date,Time FROM loadings WHERE Date='21-06-2011' AND Time ='7'");
$row = mysql_fetch_array($rs);
$num = mysql_num_rows($rs);
if($num > 0) {
//Does nothing
} else {
//insert here
}