Доступ запрещен или пустая страница с MySQL, но не MySQL - PullRequest
0 голосов
/ 30 августа 2018

Я просмотрел StackOverflow, чтобы найти ответ на этот вопрос, и до сих пор подходил с пустыми руками. Я знаю, что у некоторых была похожая проблема, но до сих пор ни один из ответов на вопросы не работал.

Итак, я работаю на двух сайтах, оба из которых находятся на одном хосте с одной и той же настройкой PHP Admin (разные учетные записи и домены, сайты не являются аффилированными). Один из них использует MySqli без проблем, в то время как другой выдает ошибку выбора базы данных, доступ на локальный хост запрещен с паролем как «НЕТ» или пустую страницу, когда я пытаюсь заменить MySql на MySqli.

Устаревший код:

$host = "LOCALHOST";
$usr = "USER";
$pwd = "PASSWORD";
$dbname = "DATABASE";
$connection = @mysql_connect($host,$usr,$pwd);

if(!$connection){ 
    die("No connection.");  
}
mysql_select_db($dbname,$connection);

MySqli, который я пытаюсь (идентичный сайту, на котором MySqli отлично работает):

$host = "LOCALHOST";
$usr = "USER";
$pwd = "PASSWORD";
$dbname = "DATABASE";

$connection = mysqli_connect($host,$usr,$pwd);
if (!$connection) {
    die("No connection.");
}

$db_select = mysqli_select_db($connection, $dbname);
if (!$db_select) {
    die("Database selection failed: " . mysqli_error($connection));
}

1 Ответ

0 голосов
/ 01 октября 2018

Так что коды ошибок PHP вообще не работали и не имели ничего общего с локальным хостом или портом, поэтому я сначала проверил, включен ли mysqli_connect. Затем я выполнил простой тест, в котором перед каждой командой mysqli отображал случайное слово.

echo 'Passed.';

global $c_mysqli;
$conn = new mysqli($host, $usr, $pwd, $dbname);

echo '<br>Passed global mysqli.';

Я обнаружил, что мой второй проход не работает, а затем продолжил делать сообщение об ошибке. Ошибка обнаружилась тогда. Тем не менее, я ничего не сделал, чтобы решить проблему ... тогда я понял, что один из моих файлов, заголовочный файл, это мясо и картошка, и если он потерпит неудачу, то все остальное тоже потерпит неудачу.

Конечно, одна из моих строк кода содержала соединение mysql, а не mysqli. Короче говоря, двойная проверка и тройная проверка, чтобы убедиться, что все

$statement = mysql_query("STATEMENT");
$query = mysql_fetch_array($statement);

Появляется как

$statement = $conn->query("STATEMENT");
$query = mysqli_fetch_array($statement);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...