MySQL连接和PHP会话的Ajax问题

时间:2012-02-25 14:59:30

标签: php jquery mysql ajax session

我遇到了一个问题。在我的index.php中,我建立了与MySQL数据库的连接,并启动了一个包含$_SESSION['name']$_SESSION['password']的会话。

我将页面content.php包含在带有PHP include()的DIV中。现在我想刷新内容而不重新加载页面,所以我通过Ajax通过jQuerys load()再次加载content.php。 content.php现在显示大量错误,因为它无法连接到数据库并且没有会话信息。是否有可能让jQuery中的load()函数像PHP中的include()一样工作?

我希望有人可以帮助我。

致以最诚挚的问候,

利玛

3 个答案:

答案 0 :(得分:4)

使用session_start()和mysql连接创建包含初始化代码的文件。然后,将它包含在index.php和content.php中。使用 include_once require_once 执行此操作,它将在两种情况下都有效(在首次加载时和在ajax加载时)。

<强>的init.php

<?php
// Start or retrieve the session
session_start();

// Your connection to mysql
...
?>

<强>的index.php

<?php
// Init actions
include_once "init.php";

// Your code
....
?>

<强> content.php

<?php
// Init actions
include_once "init.php";

// Your code
....
?>

使用此代码,第一次包含content.php时,将忽略对init.php的调用(因为它已经包含在index.php中),并且当您从ajax调用content.php时,它将包含您的会话和数据库连接。

答案 1 :(得分:1)

让我猜一下。 index.php是保持mysql连接的权利吗?

如果是soo ..然后当你对content.php进行ajax调用时,它会在index.php中设置一个连接,因为它是一个新的请求,它将不会检索它。

您可以将mysql连接从index.php移动到content.php或者向ajax调用添加一个参数,然后检查content.php是否设置了该参数。如果它是一个新的连接。

答案 2 :(得分:0)

您是否在content.php文件中包含了所需的文件?除了调用session_start()之外,您仍然需要在此文件中声明的所有数据库连接。