PHP игнорирует запросы mysql_connect - PullRequest
1 голос
/ 24 декабря 2008

Я новичок в PHP и установил на Linux для загрузки (также новичок). Во всяком случае, PHP работает ...

<?
$myVar = "test";
echo($myVar);
?>

... отлично работает.

Но ...

<?

$dbhost = "localhost";
$dbuser = "myuser";
$dbpass = "mypass";
$dbname = "mydb";

echo($dbhost . "-" . $dbuser . "-" . $dbpass . "-" . $dbname);

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die("Unable to connect to MySQL");
print $conn;

mysql_close($conn);

phpInfo();
?>

... ничего не делает. Ни ошибок, ничего. Как будто кода даже нет.

Любая помощь?

Ответы [ 6 ]

4 голосов
/ 24 декабря 2008

Попробуйте сделать следующее:

  1. Сначала убедитесь, что display_errors включено в вашем файле конфигурации php. Также установите уровень error_reporting , чтобы показать все ошибки, в том числе строгие (error_reporting = E_ALL | E_STRICT). После внесения изменений перезапустите веб-сервер.
  2. Запустите phpinfo () и убедитесь, что расширение mysql установлено и работает. Если вы не уверены, что вы раскомментировали его в файле конфигурации php (опять же, не забывайте перезапускать apache после каждого изменения в файле конфигурации).
  3. На этом этапе MySQL должен быть загружен и работать, и вы должны быть в состоянии определить из ошибки (если она сохраняется), в чем проблема.
  4. Попробуйте также сброс содержимого результата соединения ($ conn), чтобы увидеть, что оно содержит.
  5. В общем, я бы рекомендовал использовать длинные теги php (
1 голос
/ 24 декабря 2008

Попробуйте добавить это в начало вашего кода:

error_reporting(E_ALL);
1 голос
/ 24 декабря 2008

Если он ничего не делает, разве это не значит, что он подключен нормально? Какой вывод вы ожидаете от этого заявления?

Вы можете попробовать

error_reporting(E_ALL);
$conn = mysql_connect("localhost", "myusername", "mypassword");
if(!$conn) {
    echo 'Unable to connect';
} else {
    echo 'Connected to database';
}
var_dump($conn);

edit: Обращение к комментарию о том, что у вас настроен запрос MySQL, если вы не видите «успеха», это означает, что с вашим запросом что-то не так. Добавить к вышесказанному

$sth = mysql_query("SELECT * FROM tablename");
if(!$sth) {
    echo 'unable to query: ' . mysql_error();
} else {
    echo 'success';
}
0 голосов
/ 24 декабря 2008

Этот код должен создавать соединение БД, ничего больше. Что вы ожидаете увидеть?

Попробуйте это

<?php
$conn = mysql_connect("localhost", "myusername", "mypassword") 
or die("Unable to connect");
print("code sample");

print $conn;

?>

Это должно напечатать вам что-то вроде "ресурса # 1" ...

И затем вы можете использовать это соединение для связи с сервером БД.

0 голосов
/ 24 декабря 2008

Подключение к базе данных с

$conn = mysql_connect("localhost", "myusername", "mypassword") or die("Unable to connect");

не будет иметь (видимых ( результатов, если соединение было установлено успешно). Однако после выполнения этого оператора вы можете использовать другие функции mysql для выполнения запросов к базе данных.

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

0 голосов
/ 24 декабря 2008

Есть ли больше кода, чем вы нам показываете? Блок у вас просто устанавливает соединение. Вы ничего не увидите, если это удастся, вы должны использовать $conn, чтобы что-то сделать.

Чтобы подтвердить, попробуйте изменить свой пароль на заведомо неправильное значение, а затем посмотрите, нет ли ошибки. Если вы это сделаете, код работает просто отлично.

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