我有一个PHP脚本,if和else块.两者都只包含echo语句.if块执行完美但是当else块执行时根本没有任何内容被打印到屏幕上(甚至没有块外的echo语句).我已经尝试了很多东西,例如大写ELSE语句,检查所有大括号是否存在,双重和三重检查语法无济于事.请帮忙.
<?php
// Inialize session
session_start();
// Include database connection settings
include('config.inc');
$usr = mysql_real_escape_string($_POST['****ID']);
// Retrieve email address and message from database according to user's input
$query = "SELECT * FROM users WHERE username = '$usr'";
$result = mysql_query($query) or die(mysql_error());
// Put the id numbers in array $row
$row = mysql_fetch_array($result) or die(mysql_error());
// Test for ID match
if (mysql_num_rows($result) == 1)
{
echo 'The email address of ';
echo $usr;
echo ' is: ';
echo $row['email'];
echo '<p>Message: ';
echo $row['firstname'];
}
else
{
echo 'Sorry it appears that ';
echo '$usr';
echo ' has not registered yet. Why dont you tell him about ****Jacker?';
}
// Executing outside if..else blocks for testing
echo 'Sorry, it appears that ';
echo '$usr';
echo ' has not registered yet. Why dont you tell him about ****Jacker?';
?>
Run Code Online (Sandbox Code Playgroud)
您将收到错误
$row = mysql_fetch_array($result) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
由于结果数为零,因此您的脚本将打印警告.根据您的配置,您可能会看到白页而不是警告.
请注意或死(..)部分.
由于第一部分失败(获取空结果),脚本将死亡并停止.没有低于此行的代码将被执行,因此没有日志,没有,如果,...
最好的解决方案是将fetch_array放在if(mysql_num_rows(..)== 1语句中,所以我们确定至少有一个用户可以获取
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |