无法使用PHP和会话变量从SQL数据库中检索数据

时间:2014-02-05 22:27:43

标签: php mysql sql

我的网站在标题中包含以下代码 - 但正文中的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);

?>

1 个答案:

答案 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);

?>

告诉我该版本输出的内容......