我试图通过php为MySQL做一个简单的if exist
检查,然后我将创建一个字符串,如果不存在;或者如果存在字符串,它将更新并添加值counter = counter + 1
但现在我不知道为什么什么也没发生:s
我做错了什么-我有搜索的问题,但我没有找到任何东西…
谢谢提前
下面是代码
$rankset = '';
$steamid64 = "76561198070477917";
$localmap = "de_dolls";
mysql_connect("localhost", "######", "###############") or die(mysql_error());
mysql_select_db("server") or die(mysql_error());
$check1 = mysql_query("SELECT * FROM `darkrp_missingmap` WHERE map = '$localmap'") or die(mysql_error());
while($info1 = mysql_fetch_array( $check1 ))
{
if(mysql_num_rows($info1) == 0) {
print "existiert nicht wird erstellt...";
mysql_query("SELECT server INSERT INTO darkrp_missingmap (map, count) VALUES ('$localmap', '1')");
}
else {
print "existiert wird aufgestuft...";
mysql_query("SELECT server UPDATE darkrp_missingmap SET count = count + 1 WHERE map = '$localmap'");
}
}
mysql_num_rows()将资源对象作为参数,该参数是您的$check1
,而您将数组$info1
传递给它。
你应该做的是:
$check1 = mysql_query("SELECT * FROM `darkrp_missingmap` WHERE map = '$localmap'") or die(mysql_error());
if (mysql_num_rows($check1) === 0) {
#no records found
print "existiert nicht wird erstellt...";
#rest of your code
} else if (mysql_num_rows($check1) === FALSE) {
#query failed
} else {
#records found
print "existiert wird aufgestuft...";
#rest of your code
}
你应该小心使用==0
,因为mysql_num_rows()
在失败时返回FALSE
,这也可以与0
进行比较。
注意:
请不要在新代码中使用mysql_*
函数。它们不再被维护,并被正式弃用。见红框?学习预处理语句,并使用PDO或MySQLi——本文将帮助您决定使用哪一种。如果你选择PDO,这里有一个很好的教程。
你可以试试这个,你可以ref [this]
$check1 = mysql_query("SELECT * FROM `darkrp_missingmap` WHERE map = '$localmap'") or die(mysql_error());
$nums = mysql_num_rows($check1);
if($nums == 0) {
// do something
}
或者你可以使用这个sql.
SELECT COUNT(*) AS count FROM `darkrp_missingmap` WHERE map = '$localmap'
并得到这个查询的结果count
。
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$nums = $row[0]['count'];
我不认为你一次选择和插入,你也不需要试试这个
if(mysql_num_rows($info1) >0) {
print "existiert nicht wird erstellt...";
mysql_query("INSERT INTO darkrp_missingmap (map, count) VALUES ('$localmap', '1')");
} else {
print "existiert wird aufgestuft...";
mysql_query("UPDATE darkrp_missingmap SET count = count + 1 WHERE map = '$localmap'");
}
试着告诉
好的,我已经找到了我的麻烦,我已经选择了db "服务器",然后我试图做到这一点INSERT INTO darkrp_missingmap
(map
, count
) VALUES ('zu_kotze', '100')
下面是工作示例:$steamid64 = "76561198070477917";$localmap = "de_dollsw";
mysql_connect("localhost", "####", "##########") or die(mysql_error());
mysql_select_db("server") or die(mysql_error());
//maplog
$check1 = mysql_query("SELECT * FROM `darkrp_missingmap` WHERE map = '$localmap'") or die(mysql_error());
$nums = mysql_num_rows($check1);
if($nums == 0) {
print "existiert nicht wird erstellt...";
mysql_query("INSERT INTO darkrp_missingmap (map, count) VALUES ('$localmap', '1')");
} else {
print "existiert wird aufgestuft...";
mysql_query("UPDATE darkrp_missingmap SET count = count + 1 WHERE map = '$localmap'");
}