PHP не может подключиться к базе данных MySql на веб-сервере в реальном времени

Punya Kotecha спросил: 13 июня 2018 в 02:44 в: php
$con=mysqli_connect('localhost:3306','Punya','password','saain');

Мой веб-сайт PHP, который вживую не может подключиться к базе данных. Он отлично работает на моем локальном сервере Pcs. Когда я пишу localhost:3306, он выполняет оператор echo, который я написал для отладки. Если я пишу только localhost, он дает:

http 500 error

.

3 ответа

Nimeshka Srimal ответил: 13 июня 2018 в 04:35

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

Когда вы передаете localhost в качестве имени хоста функции mysqli_connect(), он пытается создать соединение с использованием гнезда Unix вместо TCP / IP. Поэтому кажется, что у вас нет прав доступа к сокету, или вам нужно получить правильную информацию о сокетах от вашего хостинг-провайдера.

Кроме того, когда вы передаете его как localhost: 3306, вы принудительно он подключается через TCP / IP вместо сокета. Вот почему это работает.

Однако вы можете принудительно использовать функцию mysqli_connect() для подключения через TCP / IP, указав имя хоста как 127.0.0.1.

$con = mysqli_connect('127.0.0.1','Punya','password','saain');

Если это не сработает, я предполагаю, что они определили другой порт по умолчанию для mysql в конфигурации php. Вы можете увидеть его, напечатав его как:

echo ini_get("mysqli.default_port");

Если этот порт по умолчанию отличается от 3306 (что маловероятно), вы можете передать порт в качестве пятого параметра в mysqli_connect ( ), как это.

$con = mysqli_connect('127.0.0.1','Punya','password','saain', 3306);

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

Надеюсь, вы понимаете, почему это происходит :) Не стесняйтесь спрашивать, есть ли у вас какие-либо сомнения.

Marlon Abeykoon ответил: 13 июня 2018 в 05:37
msgstr"... пропуская localhost, поскольку имя хоста создает соединение с помощью Unix-сокета." Это верно и для окон? создает ли он трубку, когда мы проходим как "localhost"?
Nimeshka Srimal ответил: 14 июня 2018 в 06:32
@MarlonAbeykoon Я не слишком уверен в расширении mysqli (не вижу ничего связанного в документах). Но в mysql упоминается, что он использует именованный канал в Windows, если вы предоставляете хост как localhost. - php.net/manual/en/...
KSLR Technology ответил: 13 июня 2018 в 04:46

Попробуйте проверить

здесь.

Синтаксис errorcheck в вашем файле

file.php

iDev ответил: 13 июня 2018 в 05:29

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

Есть несколько вещей, которые вы можете сначала определить проблему.

  1. Включить ошибки

, если вы размещены на сервере общего доступа cPanel. Я сомневаюсь, что вы можете изменить файл php.ini. что вы можете сделать, это включить ошибки PHP во время выполнения, чтобы у вас была правильная ошибка, а не только ошибка 500. введите приведенные ниже коды в начало вашего файла PHP

<?php
error_reporting(E_ALL);
ini_set("display_errors", "On");
  1. Информационный файл PHP

создайте файл php.info, чтобы определить, в какой среде сортировки размещен ваш веб-сайт.

<?php
  phpinfo();
?>
  1. Cpanel имеет собственный домен и порт сервера MYSQL. эту информацию вы должны получить при создании базы данных в cPanel.

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

Дополнительное видео по вопросу: PHP не может подключиться к базе данных MySql на веб-сервере в реальном времени

PHP для начинающих | #13 Подключение к БД и первый SQL-запрос

Уроки MySQL | Введение. Как подключить базу данных

КАК ПОДКЛЮЧИТЬ СЕРВЕР SAMP К БАЗЕ ДАННЫХ MYSQL - ПОДРОБНОЕ ОПИСАНИЕ