Почему он работает локально, а не удаленно?

#php #mysql #amazon-web-services #cloud #amazon-rds

Вопрос:

Я помещаю веб-сайт в облако aws, и веб-сайт написан на php. При использовании команды $conn = mysqli_connect($server, $user, $pass, $database); страница не работает. Как мы используем $conn = new mysqlit($server, $user, $pass, $database); веб-сайт работает, но он больше не подключается к базе. Есть ли какая-либо разница в этих командах?

Комментарии:

1. Я никогда mysqlit раньше не видел. Это опечатка или пользовательский драйвер sqlite?

Ответ №1:

Цель этих команд одна и та же, но это два очень разных подхода к одной и той же цели. В то время как mysqli_connect является процедурным, ‘new mysqli’ создает объект.

На практике это означает, что mysqli_connect можно использовать с другими процедурными командами (такими как mysqli_query). ООП-способ выполнения этого с помощью объекта в настоящее время является предпочтительным методом, но заставляет вас использовать объект для связи с базой данных.

Объектно-ориентированный (ООП):

 $conn = new Mysqli($server, $user, $pass, $database);
$result = $conn->query("SELECT * FROM somewhere");
 

Процедурный:

 $conn = mysqli_connect($server, $user, $pass, $database);
$result = mysqli_query($conn,"SELECT * FROM somewhere");
 

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

Более подробную информацию и примеры можно найти здесь: https://www.php.net/manual/en/mysqli .query.php

Комментарии:

1. Я не могу запустить его процедурно с помощью aws rds?

2. Возможно. Попробуйте запустить phpinfo(), чтобы проверить версию и расширения.

Ответ №2:

убедитесь, что пароль и имя пользователя такие же, как в облаке aws