如果我的查询结果为空,我想插入信息,否则我想更新信息。但是,我一直收到这个错误:
警告:mysql_num_rows()期望参数1是资源,在...中给出布尔值
$info = $_POST['info'];
$gebruiker = $_POST['gebruiker'];
$result = mysql_query("SELECT fysionummer FROM algemene_info WHERE = $gebruiker");
if (mysql_num_rows($result)==0) {
mysql_query("INSERT INTO algemene_info (`info_id`, `omschrijving`, `fysionummer`)
VALUES (NULL, '$info', '$gebruiker')");
//echo $response;
echo "Het toevoegen van de algemene info is geslaagd!";
} else {
mysql_query ("UPDATE algemene_info
SET omschrijving='$info'
WHERE fysionummer='$gebruiker'");
//echo $response;
echo "Het update van de algemene informatie is geslaagd!";
}
答案 0 :(得分:1)
你显然在这里缺少列名:
SELECT fysionummer FROM algemene_info WHERE = $gebruiker
应该是这样的:
SELECT `fysionummer` FROM `algemene_info` WHERE `COLUMN_NAME` = $gebruiker
请注意,mysql_*
函数已弃用,通常不安全。您还可以从用户插入数据,而不会确保这不会破坏您的应用程序/数据库。滥用它并发布您自己的SQL代码而不是$_POST['element_name']
非常容易。
我建议使用mysqli_*
函数,因为它们对初学者来说很容易使用,而且更安全。您可以使用预备语句。
示例:
$mysqli = new mysqli("localhost", "user", "password", "database");
$query = $mysqli->prepare("SELECT `fysionummer` FROM `algemene_info` WHERE `COLUMN_NAME` = ?");
$query->bind_param("s", $_POST['gebruiker']);
if($query->execute())
{
// success
// logic
}
答案 1 :(得分:1)
您的SQL Query
不正确。
$result = mysql_query("SELECT fysionummer FROM algemene_info WHERE = $gebruiker");
WHERE WHAT = '$gebruiker' ??
纠正错误,它将解决您的初始问题。
答案 2 :(得分:1)
你的代码毫无意义。 where = $gebruiker
?
什么是$ gebruiker?
无论如何,请谷歌搜索ON DUPLICATE KEY UPDATE
这可能就是你所需要的。
您执行正常插入操作,并且在重复键重写时,它将执行更新。