PHP страница не может загрузить базу данных MySQL - PullRequest
1 голос
/ 05 августа 2010

У меня возникли некоторые проблемы при попытке подключиться .php с MySQL. вот код connection.php

<?php
$db_host =$_POST['localhost'];
$db_user =$_POST['root'];
$db_password = "";
$db_name = "prtcl";
?>

и это страница, где я на самом деле использую соединение

<?
include("connection.php"); 
?>

...

<?php
$db = mysql_connect($db_host, $db_user, $db_password);
        mysql_select_db($db_name, $db);
            if (!$db)
              {
              die('Could not connect: ' . mysql_error());
              }
mysql_close($db);             
?>

<body>

...

это то, что я получаю, когда пытаюсь загрузить его (строка 29 вот так:

$ db = mysql_connect ($ db_host, $ db_user, $ db_password);

)

Примечание: неопределенная переменная: db_host in C: \ Program Files (x86) \ EasyPHP-5.3.2 \ www \ prtcl \ index.php в строке 29

Примечание: неопределенная переменная: db_user in C: \ Program Files (x86) \ EasyPHP-5.3.2 \ www \ prtcl \ index.php в строке 29

Примечание: неопределенная переменная: db_password в C: \ Program Files (x86) \ EasyPHP-5.3.2 \ www \ prtcl \ index.php в строке 29

Предупреждение: mysql_connect () [function.mysql-connect]: [2002] A Попытка подключения не удалась, потому что подключенная сторона не (пытается подключиться через tcp: // localhost: 3306) в C: \ Program Files (x86) \ EasyPHP-5.3.2 \ www \ prtcl \ index.php в строке 29

Предупреждение: mysql_connect () [function.mysql-connect]: соединение попытка не удалась, потому что подключен сторона не ответила должным образом после период времени или установлен соединение не удалось, потому что подключен хост не ответил. в C: \ Program Files (x86) \ EasyPHP-5.3.2 \ www \ prtcl \ index.php в строке 29

Неустранимая ошибка: максимальное время выполнения 30 секунд превышено в C: \ Program файлы (x86) \ EasyPHP-5.3.2 \ www \ prtcl \ index.php в строке 29

Как вы можете видеть, я использую EasyPHP и, поскольку этот код раньше работал (с другим БД, при использовании вручную настроенного apache / mysql), может быть в этом причина? Другая информация: я сделал базу данных с помощью phpmyadmin и у меня есть win7

спасибо

Ответы [ 2 ]

1 голос
/ 05 августа 2010

Никогда не берите свои учетные данные из $_POST без проверки. Это такая ужасная идея, и это то, что вызывает ваши ошибки, поскольку эти ключи не определены в $_POST, но они могут быть , и результаты могут быть катастрофическими!

попробуйте вставить это в connect.php

$db_host = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "prtcl";

$db = mysql_connect($db_host, $db_user, $db_password);
mysql_select_db($db_name, $db);
if(!$db) {
    die('Could not connect: ' . mysql_error());
}

тогда на других ваших страницах используйте:

require_once("path/to/connect.php");

// ... whatever else you do on this page...
0 голосов
/ 05 августа 2010

Я бы выяснил, почему переменная $ db_host не определена. Это может быть проблемой с вашей формой ввода. Убедитесь, что имя этого поля ввода действительно «localhost». Кроме того, как упоминал Марк Бейкер, вы действительно хотите провести некоторую очистку ввода, чтобы защититься от атак SQL-инъекций. Плюс, есть ли причина, по которой вы не можете жестко закодировать информацию о хосте БД в файл конфигурации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...