私のサイトでは、各ページの上部に「バナー」を含めようとしています。これは、MySQLデータベースにクエリを実行して表示される数値を返す個別のphpページです。
バナーphpurl(www.sitename.com/banner.php)の正確なURLにアクセスすると、完全に機能します。
ただし、バナーを別のページに含めると、「banner.php」が含まれ、次のエラーが返されます。データベースアクセスエラー2002:ソケット「/var/lib/mysql/mysql.sock」を介してローカルMySQLサーバーに接続できません( 2)
これを含める必要がある方法は2つあります。メインサイトのページはすべてphpです。私のフォーラムはphpbbで、含める必要のあるファイルはHTMLなので、使用しました(注、../バナールートに戻しました。ファイルが見つからないことは問題ではありません。
スコープを含めると違うと思います。これを正しく達成するにはどうすればよいですか?
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"];
}
}
?>