PHP包括另一个查询MySQL的PHP

PHP包括另一个查询MySQL的PHP,php,mysql,include,require,Php,Mysql,Include,Require,在我的站点中,我试图在每个页面的顶部包含一个“横幅”,它本身就是一个单独的php页面,用于查询MySQL数据库以返回显示的数字 当我转到横幅php URL(www.sitename.com/banner.php)的确切URL时,它工作得非常好 但是,当我将横幅包含到另一个页面include'banner.php'时,它返回以下错误:数据库访问错误2002:无法通过套接字'/var/lib/MySQL/MySQL.sock'连接到本地MySQL服务器(2) 我有两种方法,我需要包括这一点,我的主要

在我的站点中,我试图在每个页面的顶部包含一个“横幅”,它本身就是一个单独的php页面,用于查询MySQL数据库以返回显示的数字

当我转到横幅php URL(www.sitename.com/banner.php)的确切URL时,它工作得非常好

但是,当我将横幅包含到另一个页面include'banner.php'时,它返回以下错误:数据库访问错误2002:无法通过套接字'/var/lib/MySQL/MySQL.sock'连接到本地MySQL服务器(2)

我有两种方法,我需要包括这一点,我的主要网站页面都是php。我的论坛是phpbb,我需要包含的文件是HTML,所以我使用了(注意,我使用了../返回到banners根目录,这不是找不到我的文件的问题

我假设当包含范围时是不同的。我如何正确地完成这个包含

Banner.php

<?php
require("../mysql.inc.php");
check_get($tp, "tp");
$tp = intval($tp);
$link = sql_connect();
$result = sql_query($link, "SELECT COUNT(*) FROM online_count");
if (!$result) {
  echo "Database error.<br>\n";
  exit;
}
list($total) = mysql_fetch_row($result);
mysql_free_result($result);
?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="menu_css.css" media="screen"/>
</head>
<body>
<div class="menucenter">
<div class="Online"> <? echo"$total" ?> Online</div>
</body>
</html>

在线 的
mysql.inc.php

<?php

$SQLhost = "****.db.****.hostedresource.com";
$SQLport = "3306";
$SQLuser = "****";
$SQLpass = "****";
$SQLdb   = "****";


function sql_connect()
{
global $SQLhost, $SQLport, $SQLdb, $SQLuser, $SQLpass;

if ($SQLport != "")
$link = @mysql_connect("$SQLhost:$SQLport","$SQLuser","$SQLpass");
else
$link = @mysql_connect("$SQLhost","$SQLuser","$SQLpass");
if (!$link) {
echo "Database access error ".mysql_errno().": ".mysql_error()."\n";
die();
}
$result = mysql_select_db("$SQLdb");
if (!$result) {
echo "Error ".mysql_errno($link)." selecting database '$SQLdb': ".mysql_error($link)."\n";
die();
  }
return $link;
}

function sql_query($link, $query)
{
global $SQLhost, $SQLport, $SQLdb, $SQLuser, $SQLpass;

$result = mysql_query("$query", $link);
if (!$result) {
echo "Error ".mysql_errno($link).": ".mysql_error($link)."\n";
die();
}
return $result;
}

function check_get(&$store, $val)
{
$magic = get_magic_quotes_gpc();
if (isset($_POST["$val"])) {
if ($magic)
$store = stripslashes($_POST["$val"]);
else
$store = $_POST["$val"];
}
else if (isset($_GET["$val"])) {
if ($magic)
$store = stripslashes($_GET["$val"]);
else
$store = $_GET["$val"];
}
}

?>

@Craig,包含文件可能包含其他未获得正确路径的包含。能否粘贴包含文件的一些代码,以便我们验证错误

编辑: 查询末尾缺少报价

$result = sql_query($link, "SELECT COUNT(*) FROM online_count);
应该是

$result = sql_query($link, "SELECT COUNT(*) FROM online_count");
编辑: 您的引号有问题。请查看您的check_get函数。$val是一个变量,不需要在其周围加引号。请检查以下代码

if (isset($_POST[$val])) {
if ($magic)
$store = stripslashes($_POST[$val]);
else
$store = $_POST[$val];
}
else if (isset($_GET[$val])) {
if ($magic)
$store = stripslashes($_GET[$val]);
else
$store = $_GET[$val];
}
编辑: 同时从$query中删除引号:

$result = mysql_query($query, $link);
第一件事:

  • 从mysql语句中删除@,然后查看是否有其他与变量相关的错误。调试时不应抑制错误
  • 请尝试在sql_connect()函数中打印主机、端口、用户和密码变量,查看函数中的值是否正确
  • 如果您有权访问服务器,请检查/var/lib/mysql/mysql.sock是否存在,是否具有足够的权限

    srwxrwx 1 mysql mysql 0 Sep 21 05:50/var/lib/mysql/mysql.sock


  • 如果到目前为止一切正常,您可能希望进一步排除MySQL服务的故障。如果这是问题的话,重新启动将有助于清除连接。也请检查一个类似的线程。

    我编辑了我的第一篇文章,以显示包含文件的php代码。我发现的一个快速错误是sql查询后缺少了“$result=sql\u query”($link,“从联机计数中选择计数(*”);联机计数后检查您的查询缺少。由于某种奇怪的原因,它已经在这里删除了它;PAccepted。您对mysql.inc.php文件有一些问题。您是否也可以粘贴该文件的代码?添加到原始帖子中。它连接到mysql服务器,如果我直接转到mysite.com/banner.phpWhat是您的数据库连接代码?Th函数sql\u connect()。是否尝试按照路径查看套接字文件是否实际驻留在那里?此外,sql\u connect函数是否为本机函数?我找不到任何有关它的文档。