Php 运行多个选择、插入和删除
我对PHP非常陌生。请原谅所有的错误。我正在尝试使用下面列出的PHP代码为AJAX创建提交验证,以验证变量Php 运行多个选择、插入和删除,php,mysql,Php,Mysql,我对PHP非常陌生。请原谅所有的错误。我正在尝试使用下面列出的PHP代码为AJAX创建提交验证,以验证变量$\u POST['genre']是否存在于数据库中。如果不存在,则插入,如果存在,则删除。然而,它似乎只是插入而不是删除。任何帮助都会很好! 谢谢, <?php include('../includes/includes_db_connect.php'); $tbl_name = "genres"; $genre
$\u POST['genre']
是否存在于数据库中。如果不存在,则插入,如果存在,则删除。然而,它似乎只是插入而不是删除。任何帮助都会很好!
谢谢,
<?php
include('../includes/includes_db_connect.php');
$tbl_name = "genres";
$genre = $_POST['genre'];
$query = mysqli_query($con, "SELECT types FROM genres WHERE types = '".$genre."'");
$row = mysqli_num_rows($query);
if ($row > 0){
echo "delete";
mysqli_query($con, "DELETE FROM ".$tbl_name." WHERE types = '".$genre."'");
} else
echo "inserted";
mysqli_query($con, "INSERT INTO ".$tbl_name." (types) VALUES ('".$genre."')");
mysqli_close($con);
?>
else语句中缺少大括号
使用if-else的正确方法是
if {PUT ALL STATEMENT WHICH SHOULD BE EXECUTED IF CONDITION IS STATISFIED}
else {PUT ALL STATEMENT WHICH SHOULD BE EXECUTED IF CONDITION IS NOT STATISFIED}
如果不使用{},则只会执行一条语句,在本例中,该语句回显“inserted”,insert查询在else语句之外,因此它一直在执行
因此,即使它正在删除,但同时又在插入,这就是行为。打印第一个sql查询并在数据库中运行它,以查看它是否返回一行,或者mysqli是否支持参数化查询,您不应该使用串联来填充用户提供的值,您受到SQL注入的影响。types
列只包含一种类型还是一个列表?您的查询查找的是完全匹配的,而不是子字符串。@Awlad Liton-尝试了您的建议-但做了同样的事情。@Barmar-这是“类型”中的类型列表。更具体地说,他在if
块周围有正确的大括号,但在else
块周围没有。@Sameer。你是对的!非常感谢你。你让我开心。对其他人说:这是我的第一篇帖子,你们是最棒的!谢谢大家的意见。