PHP не включает информацию о соединении, что не так? - PullRequest
4 голосов
/ 13 октября 2010

Я пытаюсь свернуть сайт CMS, и я нахожусь на хостинге 1and1 Internet. Я пытаюсь подключиться к базе данных MySQL и получаю следующую ошибку:

Не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)

После некоторого разочарования я решил проверить мое включение, и оказалось, что следующий код не включает мой файл переменных подключения.

admin.php

<?php

include("connection.php");

$link = mysql_connect($connection_server, $connection_user, $connection_password);
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);

?>

connection.php

<?php

/* --------------------------------------
/
/   Bitachon.org Connection Variables
/   
/   Created by: Moshe [Last Name]
/
/
/   Date: October 12, 2010
/
/
/   This file contains the connection 
/   variable to connect to the MySQL
/   database that powers [site]
/
/  --------------------------------------*/

//Variable to confirm that the file has been included
$connnections_included = true;


/* --- Connection Variables ---*/

$connnection_server = "[server]";

$connection_database = "[db]";

$connection_user =  "[username]";

$connection_password = "[password]";

?>

Что не так?

Ответы [ 4 ]

4 голосов
/ 14 октября 2010

Проблема заключается в вашем файле connection.php, где есть опечатка:

$connnection_server = "[server]";
  // ^-- third n

Исправление этой проблемы (наряду с проблемой include(), упомянутой в ответ Джоша ) должно решить вашу проблему.

1 голос
/ 14 октября 2010
После некоторого разочарования я решил проверить мое включение, и оказалось, что следующий код не включает мой файл переменных подключения

Чтобы определить, действительно ли это так, попробуйте следующее:

  1. В connection.php добавьте строку: die('This is connection.php.');
    Посмотрите, умрет ли скрипт.Если это так, файл включается.
  2. До
    $link = mysql_connect($connection_server, $connection_user, $connection_password)
    добавьте:
    var_dump($connection_server)
    и посмотрите, выводится ли сервер соединений при запуске сценария,или если вместо этого появляется что-то вроде «NULL».Если оно пустое, вы знаете, что переменная не установлена.

РЕДАКТИРОВАТЬ 1 :

Согласно вашему сообщению в чате:

Вы не можете включить удаленный файл, например, используя http://your.domain/connection.php.Ну, вы можете, но, как вы видели, это не сработает.include («http://your.domain/new/connection.php"); означает« выполнить connection.php как отдельный запрос и включить его вывод ».

Вы хотите:

include(dirname(__FILE__)."/connection.php");
1 голос
/ 14 октября 2010

Put error_reporting (E_ALL); до mysql_connect (). Вы получаете уведомления о неопределенных переменных? - Lekensteyn


@ Лекенштейн - Да, я делаю. - Моше

Положите следующее в config.php перед $connections_included.

global $connections_included, $connection_server, $connection_user, $connection_password;

Он будет экспортировать эти переменные в глобальную область.

1 голос
/ 13 октября 2010

Убедитесь, что путь указан правильно

include("/path/to/connection.php");

Проверьте права на файл connection.php, проверьте, доступен ли он для чтения

$filename = 'connection.php';
if(is_readable($filename)) {
    echo 'The file is readable';
} else {
    echo 'The file is not readable';
}

База данных MySQL находится на том же сервере? AKA Localhost или другой сервер?

Жесткий код пути

$pwd = `pwd`;
echo "PWD: ".$pwd."<br />"; // use just for testing
include($pwd."/connection.php");

EDIT: Можете ли вы сравнить connection.php и admin.php

$filename = 'admin.php';

echo "Permissions: ".substr(sprintf("%o",fileperms($filename)),-4)."<br />";
echo "File Owner: ".fileowner($filename)."<br />";
echo "File Group: ".filegroup($filename)."<br />";

if(is_executable($filename)) {
    echo ("$filename is executable<br />");
} else {
    echo ("$filename is not executable<br />");
}

if(is_readable($filename)) {
    echo "$filename is readable<br />";
} else {
    echo "$filename is not readable<br />";
}

echo "Real Path: ".realpath($filename)."<br />";

$filename = 'connection.php';

echo "Permissions: ".substr(sprintf("%o",fileperms($filename)),-4)."<br />";
echo "File Owner: ".fileowner($filename)."<br />";
echo "File Group: ".filegroup($filename)."<br />";

if(is_executable($filename)) {
    echo ("$filename is executable<br />");
} else {
    echo ("$filename is not executable<br />");
}

if(is_readable($filename)) {
    echo "$filename is readable";
} else {
    echo "$filename is not readable";
}

echo "Real Path: ".realpath($filename)."<br />";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...