mysql_error()没有在php中显示错误

时间:2016-05-04 09:12:33

标签: php mysql

我正在尝试保存错误消息,但它没有显示错误

$selectquery=mysql_query("select * from employee where eid='$eid' and name='$name' and  ssn='$ssn'");
if(mysql_num_rows($selectquery)>0)
{
   $state="success";
   $sql="insert into  pfupload(eid1,name,ssn,state) values('$eid','$name','$ssn','$state')";  
   $sqlquery=mysql_query($sql); 
}
else
{
     $state1= mysql_error();
   $sql1="insert into  pfupload(eid1,name,ssn,state) values('$eid','$name','$ssn','$state1')";  
   mysql_query($sql1); 
}

2 个答案:

答案 0 :(得分:1)

您必须将de conection变量传递给mysql_error()

此外,您应该使用mysqli_函数而不是mysql_。在PHP 5.5.0中不推荐使用所有mysql_函数。

More info

答案 1 :(得分:1)

首先确保您已启用错误记录:

ini_set('display_errors', 1);
error_reporting(E_ALL);

此外,我会稍微重新组织您的代码以删除重复:

$selectquery = mysql_query("select * from employee where eid='$eid' and name='$name' and  ssn='$ssn'");
$state = mysql_num_rows($selectquery)>0 ? 'success' : mysql_error();
$sql1 = "insert into pfupload(eid1,name,ssn,state) values('$eid','$name','$ssn','$state')";  
mysql_query($sql1); 

如果没有将连接传递给mysql_error(),它应该有效。如果要仅检查行数,请执行SELECT count(1) FROM employee WHERE eid='$eid' AND name='$name' AND ssn='$ssn'查询,然后检查计数。它会使您的执行速度更快,内存占用更低,因为您不必将所有结果加载到PHP中。