Редактировать: Примечание для будущих читателей. О.П. отредактирован свой вопрос с исправленным синтаксисом после ответов были опубликованы и этот ответ был основан на их исходном сообщении:
и добавил:
«Таким образом, вопрос было то, что SELinux блокировал удаленные соединения из скриптов PHP, выполняемых веб-сервером Apache. В этом терминале был установлен setsebool -P httpd_can_network_connect = 1.
Во-первых, вы не выбрали базу данных.
и if (!db)
необходимо изменить на if (!conn)
и if ($db->connect_error)
до if ($conn->connect_error)
. Та же переменная должна использоваться во всем коде.
Вы также используете неправильные переменную $db
это $conn
(или что вы хотите использовать, но, как я уже говорил выше, вы должны использовать то же переменное для подключения и для запроса. Отчеты
Ошибки http://php.net/manual/en/function.error-reporting.php сказал бы вам о неопределенной переменной
Поэтому:.
$conn = @mysqli_connect("host","root","pass", "your_database");
Sidenote: host
Я принимаю это только представитель хоста вы находитесь с помощью. Если вы находитесь на своем ПК, вы должны использовать localhost
и получить доступ к этому файлу как http://localhost/file.php
вместо file///file.php
, если это то, что вы делаете, и не будет работать. Веб-браузер не будет анализировать такие директивы PHP, как это, и вам нужно установить веб-сервер/PHP для его работы, включая MySQL.
Прочитайте руководство по подключению:
и удалить @
символы при тестировании. Они являются подавителями ошибок.
Проверка на наличие ошибок с http://php.net/manual/en/mysqli.error.php
Пример из руководства:
Sidenote: 127.0.0.1
или localhost
или если принимал, используйте параметр они дали вам использовать.
<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
mysqli_close($link);
Добавить error reporting в верхней части файла (ов), который поможет найти ошибки.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Then the rest of your code
Sidenote: Отображение ошибок не должно быть сделано только в постановке, и никогда производства.
Что находится в журнале ошибок PHP? –
Простой: вы не выбрали базу данных. Вы также используете неправильную переменную '$ conn', это' $ db'. –
Если у вас возникли проблемы с ошибками, почему вы подавляете сообщения об ошибках с помощью '@'? Похоже, что такие сообщения были бы полезны. – Tim