我的php脚本在执行返回零(0)行的mysql select查询后停止处理和输出
下面是我的代码。当我尝试插入一个已经存在的用户时,查询返回一行,脚本工作正常。但当查询返回零行时,脚本将在下面代码中注释为“stops HERE”的点停止。请告诉我,我不是很了解这个问题,而且我是php新手。即使是ifs之外的echo语句也不会执行我的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 = $_
<?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所解释的,这一行是问题的根源。谢谢