2011-06-23 15 views
0

私はSQLクエリの適切な構文を取得するのに苦労しています。私はできることはすべて見てきたが、何も起こらないようである。php sql質問:IF EXISTSの使用

レコードがデータベースに含まれているかどうかを確認する必要があります。

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]

、誰もが使用する正しい構文に私を導くことができる

を試してみました。

ちなみにこのサイトと読書を通しては素晴らしいと思われます。特に、質問に答えるために提出されたプレヴィオスからの示唆。私はすべてを見渡すが、私の答えは見つからなかった。

よろしくトレバー

+0

MySQLを使用している場合は、このページから質問をしてみてください。http://stackoverflow.com/search?q=mysql+if+not+exists+insert様々なSQLシステム用 –

+0

またはこの:HTTP ://stackoverflow.com/search?q = sql + if + not + exists + insert –

+0

可能な複製:http://stackoverflow.com/questions/3164505/mysql-insert-record-if-not-exists-in表 –

答えて

0
$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 
} 
+0

ありがとう。よく働く。 Trevorに関して –

+0

Thumb up?ハハハはただ冗談を言う人。それがあなたを助けてくれたことを知ってよかったです。 =)) – easyb

1

あなたは概要で

<?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*/ 

?> 
1

次のコードのようなものが必要になります。予約語を使用しないでください。

予約語を使用しているようです。予約語を使用すると非常にトリッキーなバグになります。

あなたの予約されたフィールドと変数には、接頭辞orまたはsomeを追加します。

adate instead of date 
atime instead of time 

予約語のリストを参照するにはここをクリックしてください。

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

+0

それを指摘してくれてありがとう。私は将来もっと注意する。 –