我的php脚本在执行返回零(0)行的mysql select查询后停止处理和输出

我的php脚本在执行返回零(0)行的mysql select查询后停止处理和输出,php,mysql,Php,Mysql,下面是我的代码。当我尝试插入一个已经存在的用户时,查询返回一行,脚本工作正常。但当查询返回零行时,脚本将在下面代码中注释为“stops HERE”的点停止。请告诉我,我不是很了解这个问题,而且我是php新手。即使是ifs之外的echo语句也不会执行 <?php session_start(); $_SESSION["error"] = ""; include "dbconnection.php"; $_SESSION["validUser"] = 4; $validUser = $_

下面是我的代码。当我尝试插入一个已经存在的用户时,查询返回一行,脚本工作正常。但当查询返回零行时,脚本将在下面代码中注释为“stops HERE”的点停止。请告诉我,我不是很了解这个问题,而且我是php新手。即使是ifs之外的echo语句也不会执行

<?php
session_start();
$_SESSION["error"] = "";
include "dbconnection.php";

$_SESSION["validUser"] = 4; 

$validUser = $_SESSION["validUser"];


extract($_POST);

if($courseSession == ""){
    echo "You must Select a course session ";   
}
else {
    $query = "SELECT * FROM courses WHERE student = $validUser AND course='$courseSession'";
    $result = mysql_query($query, $db)  or die(mysql_error($db));

    if(!$result){
        echo " no results have been returned testing "; // used for testing
    }
    else {
        echo " Results returned but don't understand  \n Number rows = ";   // used for testing
        echo mysql_num_rows($result);

    } //STOPS HERE, here is where the script stops after query above returns 0 row.
    $check = mysql_num_rows($result)   or die(mysql_error($db));

    echo " after check course ";
    if($check){

        echo "You have already registered for this session "; 


    }

    else if(!$check){

        $query = "INSERT INTO courses
                            (course, student, groupId)

                        VALUES
                            ('$courseSession', '$validUser', '$group')";

        $res = mysql_query($query, $db) or die(mysql_error($db));
        if(!$res){
            echo "Error Registering Course ";
        }
        else{
            echo "Successfully registered for this session ";
        }
    }
}


echo " TESting testing ";


?>

这行代码中有一个问题:

$check=mysql\u num\u rows($result)或die(mysql\u error($db))


运行时,
mysql\u num\u rows($result)
返回0,该值在本例中与false的计算结果相同,这就是为什么执行
die()
,之后什么也不运行的原因。

尝试以下可能有助于替代的方法:

$query = "SELECT Count(*) as ResultVal FROM courses WHERE student = $validUser AND course='$courseSession'";
$result = mysql_query($query, $db)  or die(mysql_error($db));

if($result["ResultVal"] > 0){
       echo "You have already registered for this session "; 
   }

    else if($result["ResultVal"] = 0){ //OR just else

        $query = "INSERT INTO courses

        //rest of the code

尝试$check=mysql_num_rows($result)或die(“hi-control在这里”); 而不是$check=mysql\u num\u rows($result)或die(mysql\u error($db))


如果打印“hi control is here”(高控制在此),则确认问题出在模具上。

是否打开了错误报告功能?正在尝试添加
ini\u集('display\u errors','1')
在文件顶部,您应该接受下面正确的答案。正如@user2408594所解释的,这一行是问题的根源。谢谢