我正在努力为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
}