Веб-страница PHP не подключается к SQL-серверу на другом устройстве

Я создал простую программу php, работающую на сервере apache2, php работает, но не подключается к серверу sql, когда я просматриваю файл на другом устройстве. База данных, которую я использую на своем устройстве Debian 9, - это MariaDB.

<?php
$conn = new mysqli("localhost","root","password","login");
$query = "SELECT * FROM users WHERE username = 'Martin';
$result = $conn->query($query);
$row = $result->fetch_array(MYSQLI_ASSOC);
echo $row['password'];
?>

Я почти уверен, что правильно понял код (я пробовал mysql_connect и другие методы). Я не понимаю, почему веб-страница выдает ошибку, когда я пытаюсь просмотреть страницу на другом устройстве.

Когда я использовал устройство Debian, время его работы было разным. Иногда это срабатывало, а иногда - нет. Таблицы и база данных на сервере sql в порядке, я проверил это и не думаю, что это ошибка.

MariaDB [(none)]> select * from login.users;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | Martin   | pass     |
+----+----------+----------+
1 row in set (0.01 sec)

MariaDB [(none)]> 

Кто-нибудь может мне помочь? Я думаю, что мне нужно включить что-то в файлах apache, но мои знания ограничены, и я не знаю, с какой проблемой я столкнулся.

В конце строки 3 отсутствует двойная кавычка?

The Impaler 29.05.2018 21:37
the webpage is giving me an error а ошибка есть?
ᴄʀᴏᴢᴇᴛ 29.05.2018 21:41
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
49
1

Ответы 1

Помимо всего прочего, следующая строка:

$query = "SELECT * FROM users WHERE username = 'Martin';

должно быть

$query = "SELECT * FROM users WHERE username = 'Martin'"; // add the missing double quote

Если это не решит проблему, вам, вероятно, следует опубликовать сообщение об ошибке.

Да, плохо, в коде есть двойные кавычки (ошибка копирования и вставки). Когда я просматриваю сценарий в веб-браузере, он говорит, что сервер «не может обработать HTTP-ошибку 500 запроса».

Martin Bradley 29.05.2018 23:25

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

jstur 30.05.2018 06:18

[Вс, 03 июня 18: 12: 24.097587 2018] [: ошибка] [pid 30052] [клиент 192.168.0.9:44526] Предупреждение PHP: mysqli :: __ construct (): (HY000 / 1698): доступ запрещен для пользователя 'root' @ 'localhost' в /var/www/html/db.php в строке 8, ссылка: 192.168.0.33/login.php [вс, 03 июня 18: 12: 24.097937 2018] [: ошибка] [pid 30052] [клиент 192.168.0.9:44526] PHP Предупреждение: mysqli :: query (): не удалось получить mysqli в /var/www/html/db.php в строке 10, ссылка: 192.168.0.33/login.php

Martin Bradley 03.06.2018 20:17

[Вс, 03 июня 18: 12: 24.100875 2018] [: ошибка] [pid 30052] [клиент 192.168.0.9:44526] Неустранимая ошибка PHP: Неперехваченная ошибка: вызов функции-члена fetch_array () при нулевом значении в / var / www / html / db.php: 11 \ n Трассировка стека: \ n # 0 {main} \ n, брошенная в /var/www/html/db.php в строке 11, ссылка: 192.168.0.33/login.php _Это то, что записывается в журнал ошибок при запуске login.php

Martin Bradley 03.06.2018 20:17

Можете ли вы поделиться первой дюжиной или около того строк db.php? Обязательно продезинфицируйте все важное (замените пароли / домены / имена баз данных).

jstur 04.06.2018 16:56

В любом случае, исходя из вашего исходного сообщения и этой ошибки, вполне вероятно, что проблема заключается в следующем: `` $ conn = new mysqli ("localhost", "root", "password", "login"); `` У вас неправильный пароль, или имя пользователя, или MySQL не настроен для прослушивания localhost, или неправильный порт и т. д. Сосредоточьте свои усилия на простом успешном подключении к БД. Попробуйте подключиться к настольной программе, такой как MySQL workbench или DBeaver, и посмотрите, к чему это приведет. Вы никогда не подключаетесь к базе данных.

jstur 04.06.2018 16:57

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

Martin Bradley 07.06.2018 17:20

Раньше связи не было. Если вы ничего не меняли, кроме создания нового пользователя в той же базе данных MySQL, проблема могла заключаться в том, что ваш скрипт запущен на другом сервере, а MySQL был настроен так, чтобы root не мог подключаться с удаленных хостов (очень разумные и общие меры предосторожности).

jstur 12.06.2018 19:49

Другие вопросы по теме