Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 运行多个选择、插入和删除_Php_Mysql - Fatal编程技术网

Php 运行多个选择、插入和删除

Php 运行多个选择、插入和删除,php,mysql,Php,Mysql,我对PHP非常陌生。请原谅所有的错误。我正在尝试使用下面列出的PHP代码为AJAX创建提交验证,以验证变量$\u POST['genre']是否存在于数据库中。如果不存在,则插入,如果存在,则删除。然而,它似乎只是插入而不是删除。任何帮助都会很好! 谢谢, <?php include('../includes/includes_db_connect.php'); $tbl_name = "genres"; $genre

我对PHP非常陌生。请原谅所有的错误。我正在尝试使用下面列出的PHP代码为AJAX创建提交验证,以验证变量
$\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。你是对的!非常感谢你。你让我开心。对其他人说:这是我的第一篇帖子,你们是最棒的!谢谢大家的意见。