【发布时间】:2013-08-29 09:38:08
【问题描述】:
我有这个代码:
$q = $_GET['q'];
$results= mysql_query("SELECT number FROM words WHERE keyword='$q'") or
die(mysql_error());;
if($results){
mysql_query("UPDATE words SET number = number + 1 WHERE keyword='$q'") or die(mysql_error());
}
else{
mysql_query("INSERT INTO words VALUES ('$q', '1', '$d')") or die(mysql_error());
}
我有桌子words:
+--------+--------+-- -----+
|keyword |number |date |
+--------------------------+
|one |1 |01-01-01|
+--------------------------+
当$q 为one 时,数字增加1
但是当$q 其他词什么都没有发生。我希望当$q 不在关键字列表中时进行注册,并且如果$q 在关键字列中,则数字增加1。“如果单词存在”有效,但“如果不存在”则无效不行……
请帮忙!谢谢!
【问题讨论】:
-
$results只有在出现阻止第一个查询运行的错误时才会为假。没有找到任何匹配的行不是错误。使用mysql_num_rows()找出找到了多少行。 -
感谢您的建议,我会努力的!
-
keyword字段是否有唯一索引?如果是这样,您可以将INSERT与ON DUPLICATE KEY选项一起使用。 -
你可以用
'$d'代替NOW()。 -
如果没有匹配的行,$row_num 将为 0?