我的网站在标题中包含以下代码 - 但正文中的PHP回声正在返回任何内容:
<?php
session_start();
print_r($_SESSION);
$user = $_SESSION['email'];
$query = "SELECT * FROM first_page_data WHERE email_address= '$user' ";
$result = mysql_query($query);
$row_buyerdetails = mysql_fetch_assoc($result);
?>
以下内容不返回任何内容:
<?php echo $row_buyerdetails['phone_number'] ?>
我知道名为'email'的会话变量正在从第3行的print_r函数接收上一页的值。变量$ user也获取了正确的电子邮件地址。
数据库设置正确(已经能够以其他方式成功访问,但我试图修改它以访问与特定电子邮件地址相关的数据,如图所示)。
如果有人能指出我正确的方向,我会感激它!另外作为一个方面,人们如何建议调试PHP而不是使用echos和print_r函数乱丢代码?有没有办法把断点放在例如?
根据要求,这是要求更改的代码:
<?php
$hostname_first_data = "*****";
$database_first_data = "*****";
$username_first_data = "*****";
$password_first_data = "*****";
$first_data = mysql_pconnect($hostname_first_data, $username_first_data, $password_first_data) or trigger_error(mysql_error(),E_USER_ERROR);
echo mysql_errno($first_data) . ": " . mysql_error($first_data). "\n";
session_start();
print_r($_SESSION);
$user = $_SESSION['email'];
echo $user;
$query = "SELECT * FROM first_page_data WHERE email_address= '$user' ";
$result = mysql_query($query, $first_data);
$row_buyerdetails = mysql_fetch_assoc($result);
print_r($row_buyerdetails);
?>
答案 0 :(得分:1)
您是否错过了标题中的mysql_connect来电或包含?
尝试添加:
echo mysql_errno($link) . ": " . mysql_error($link). "\n";
$ link是你从mysql_connect获得的资源。
要调试PHP,您必须安装或激活名为Xdebug的扩展并使用 nice IDE,如PHPStorm,然后Bob是您的叔叔:)
你也可以使用Zend Debugger,但我对它的经验有限。
您在开发时可以(也应该)拥有完整的error reporting。它会告诉你例如不推荐使用mysql_ *函数。
如果您不希望错误出现在您的页面上,您可以选择写入日志文件并在该文件上保持打开状态。
代码更新:
<?php
$hostname_first_data = "*****";
$database_first_data = "*****";
$username_first_data = "*****";
$password_first_data = "*****";
$first_data = mysql_pconnect($hostname_first_data, $username_first_data, $password_first_data) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_first_data, $first_data);
session_start();
print_r($_SESSION);
$user = $_SESSION['email'];
echo $user;
$query = "SELECT * FROM first_page_data WHERE email_address= '$user' ";
$result = mysql_query($query, $first_data);
echo mysql_errno($first_data) . ": " . mysql_error($first_data). "\n";
$row_buyerdetails = mysql_fetch_assoc($result);
print_r($row_buyerdetails);
?>
告诉我该版本输出的内容......