Php 未找到结果时给出错误
我希望脚本在找不到数据库条目时给出一个错误。此脚本与$\u GET函数配合使用。比如说什么时候。用户键入了以下内容:index.php?id=1054355 它什么也找不到。它输出一条消息,表示找不到条目 我现在有:Php 未找到结果时给出错误,php,mysql,Php,Mysql,我希望脚本在找不到数据库条目时给出一个错误。此脚本与$\u GET函数配合使用。比如说什么时候。用户键入了以下内容:index.php?id=1054355 它什么也找不到。它输出一条消息,表示找不到条目 我现在有: $userid = mysql_real_escape_string($_GET['id']); $query = mysql_query("SELECT * FROM nieuws WHERE UserID = '$userid'") or die(mysql_error())
$userid = mysql_real_escape_string($_GET['id']);
$query = mysql_query("SELECT * FROM nieuws WHERE UserID = '$userid'") or die(mysql_error());
//fetch the results / convert results into an array
while($rows = mysql_fetch_array($query)) {
$userid = $rows['UserID'];
$titel = $rows['Titel'];
$body = $rows['Body'];
$door = $rows['Door'];
$bron = $rows['Bron'];
echo
"
<h1><b>Nieuws - $titel</b></h1>
<p> </P>
<h4>$body</h4>
<p> </p>
<p> </p>
<b>Geschreven door: $door</b><p>
<i>Bronvermelding: $bron</i>
";
}
?>
$userid=mysql\u real\u escape\u字符串($\u GET['id']);
$query=mysql\u query(“从nieuws中选择*,其中UserID='$UserID')或die(mysql\u error());
//获取结果/将结果转换为数组
while($rows=mysql\u fetch\u array($query)){
$userid=$rows['userid'];
$titel=$rows['titel'];
$body=$rows['body'];
$door=$rows['door'];
$bron=$rows['bron'];
回响
"
Nieuws-$titel
$body
门:$door
青铜熔化:$bron
";
}
?>
我希望有人能想出一个解决办法
干杯。使用numrows
您必须注意mysql不久将不再可用
改用mysqli
$numRows = mysql_num_rows($query);
if($numRows == 0){
echo "No record found!";
}
您可以这样做:
$userid = mysql_real_escape_string($_GET['id']);
$query = mysql_query("SELECT * FROM nieuws WHERE UserID = '$userid'") or die(mysql_error());
if (mysql_num_rows($result) == 0) {
echo 'No rows found';
} else {
//fetch the results / convert results into an array
while($rows = mysql_fetch_array($query)) {
$userid = $rows['UserID'];
// etc...
}
}
注意:mysql_*()函数已被弃用,不久将被删除。使用mysqli_*()
或PDO
获取新代码
$userid = mysql_real_escape_string($_GET['id']);
$query = mysql_query("SELECT * FROM nieuws WHERE UserID = '$userid'") or die(mysql_error());
if(mysql_fetch_array($query ) == false)
return 'no data found';
//fetch the results / convert results into an array
while($rows = mysql_fetch_array($query)) {
$userid = $rows['UserID'];
$titel = $rows['Titel'];
$body = $rows['Body'];
$door = $rows['Door'];
$bron = $rows['Bron'];
echo
"
<h1><b>Nieuws - $titel</b></h1>
<p> </P>
<h4>$body</h4>
<p> </p>
<p> </p>
<b>Geschreven door: $door</b><p>
<i>Bronvermelding: $bron</i>
";
}
?>
在mysqli中:
if($query->num_rows)
return "no data found!";
else{
// do your stuff
}
您可以这样做:
$result = mysql_query($sql,$con);
$row_count = mysql_num_rows($result);
if($row_count === 0)
{
echo "nothing found" ;
}
else
{
// your code for the retrieved result
}
if(!$query){//如果查询不成功,将返回true
echo“找不到id”;
}否则{
while($rows=mysql\u fetch\u array($query)){
$userid=$rows['userid'];
$titel=$rows['titel'];
$body=$rows['body'];
$door=$rows['door'];
$bron=$rows['bron'];
回响
"
Nieuws-$titel
$body
门:$door
青铜熔化:$bron
";
}
}
使用mySQLi(应该使用)
这只是一个基本的例子,你可以做很多事情来检查结果,其中一种方法是
if(isset($titel)){//code here to do stuff}
如果找不到结果,可能值得做的事情是将用户重定向到通用页面
if(!isset($titel){header("location:index.php");} //This checks if titel is set, if not then...
正如Awlad Linton所说,您也可以
mysqli_num_rows()
,这可能更有效。请编写您所说的脚本,我对mysqli有点不了解。您是否响应查询并直接在phpyadmin中运行?它会返回任何结果吗?最简单的答案,但非常好。这正是我需要的!
$write = new mysqli($db_hostname,$db_username,$db_password,$db_database); //use your values here
$stmt = $write->prepare("SELECT `UserID`,`Titel`,`Body`,`Door`,`Bron` WHERE `userID` = ?");
$stmt->bind_param('i',$userId); // i = int, s = string.
$stmt->bind_result($userid,$titel,$body,$door,$bron);
$stmt->fetch();
$stmt->execute();
$stmt->close();
if(isset($titel)){//code here to do stuff}
if(!isset($titel){header("location:index.php");} //This checks if titel is set, if not then...