mysql/php增加数字或插入无效
我有以下代码:mysql/php增加数字或插入无效,php,mysql,datatable,count,Php,Mysql,Datatable,Count,我有以下代码: $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("I
$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());
}
我有表格单词:
+--------+--------+-- -----+
|keyword |number |date |
+--------------------------+
|one |1 |01-01-01|
+--------------------------+
当$q
为1
时,数字随1增加
但是当$q
这个词出现时,什么也不会发生。我希望当$q
不在关键字列表中时,注册,如果$q
在关键字列中,则数字随1增加。“如果这个词存在”行得通,但“如果它不存在”行不通。。。。
请帮忙!谢谢 假设关键字
是表的主键,您可以在一次查询中完成:
INSERT INTO words (keyword, number, date)
VALUES ('$q', 1, '$d')
ON DUPLICATE KEY UPDATE number = number + 1
假设关键字
是表的主键,您可以在一个查询中执行此操作:
INSERT INTO words (keyword, number, date)
VALUES ('$q', 1, '$d')
ON DUPLICATE KEY UPDATE number = number + 1
$results
只有在出现阻止第一个查询运行的错误时才会为false。找不到任何匹配的行不是错误。使用mysql\u num\u rows()
查找找到的行数。感谢您的建议,我会尝试!关键字
字段上是否有唯一索引?如果是这样,您可以使用INSERT
和ON DUPLICATE KEY
选项。您可以使用NOW()
代替“$d”
。如果没有任何行匹配,$row_num将为0?$results
只有在出现阻止第一个查询运行的错误时才会为false。找不到任何匹配的行不是错误。使用mysql\u num\u rows()
查找找到的行数。感谢您的建议,我会尝试!关键字
字段上是否有唯一索引?如果是这样,您可以使用INSERT
和ON DUPLICATE KEY
选项。您可以使用NOW()
代替'$d'
。如果没有任何行匹配,$row_num将为0?我使用的是phpmyadmin,当我尝试将其设为主键时,出现此错误:\1170-在键规范中使用的BLOB/TEXT列“keyword”没有键长度
不要使用TEXT,使用varchar。在文本列上使用索引有一些限制。我把它改为varchar,但现在它说:这不是一个数字。定义char或varchar列时,必须指定最大大小,例如varchar(32)
我使用的是phpmyadmin,当我尝试将其设置为主键时,我遇到了这个错误:#1170-在键规范中使用的BLOB/TEXT列“keyword”没有键长度
不要使用TEXT,使用varchar。在文本列上使用索引有一些限制。我把它改为varchar,但现在它说:这不是一个数字。定义char或varchar列时,必须指定最大大小,例如varchar(32)