Если база данных MySQL находится на том же сервере, что и ваш PHP скрипт, то обычный логический подход является то, что ваш хост localhost
. То же, что и на вашем локальном компьютере, потому что они находятся на одной машине.
Однако, если ваша база данных MySQL находится на ДРУГОЙ SERVER отдельно от ваших скриптов PHP, вам нужно будет получить доступ к этому серверу с помощью веб-адреса для вашего PHP для подключения к MySQL.
Мы не можем сказать вам, что это такое, и ваши серверные хосты (вашего сервера MySQL) смогут сообщить вам и предоставить вам правильные учетные данные.
Я считаю, что было бы более привычным для MySQL и PHP, чтобы быть на том же диске, особенно для непрофессиональных систем, как ваши, как представляется, так, то этот вопрос будет:
- ли ваш Логин уточните настройки на вашем сервере? (то же имя пользователя/пароль)
Есть ли MySQL errors или PDO errors (при подключении с PDO). Не перенаправляйте ошибку, но вместо этого выводите ошибку в файл журнала, чтобы вы могли читать ПОЧЕМУ MySQL в вашем коде не подключался.
Вы по-прежнему можете установить ваш PHP для связи с вашим localhost MySQL через удаленный адрес (например, servername=$_SERVER['SERVER_NAME'];
). (см примечание ниже)
Многие онлайн-счетов (в таких вещах, как CPanel) будет блокировать вас от доступа к MySQL как корень или, по крайней мере, не даст вам пароль корня MySQL. Использование root для доступа к MySQL через PHP: Неплохая идея, и вместо этого вы должны настроить определенного пользователя MySQL для своего PHP с достаточными правами, которые вам нужно читать/записывать в БД, и не более того.
Если ваш MySQL удален (не localhost
), вам также может потребоваться указать номер порта с данными о соединении. Обычные номера портов: 3306
, но это то, что вам нужно знать на своих серверах.
Сразу после обучения в header(Location:);
Перенаправление вы должны всегда установить die();
или exit
остановить PHP обработки остальной части сценария.
Данные SQL-вставки: высоко можно использовать для SQL-инъекций и других SQL-атак и компрометации. Вы действительно должны ДЕЙСТВИТЕЛЬНО изучить использование MySQL Prepared Statements, вы уже кодируете в стиле OO, так что вы уже почти там.
Пример удаленного подключения от the manual
<?php
/***
* Remember 3306 is only the default port number, and it could be
* anything. Check with your server hosts.
***/
$conn = new mysqli('remote.addr.org.uk', 'username', 'my_password', 'my_databasa', '3306');
/***
* This is the "official" OO way to do it,
* BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
***/
if ($conn->connect_error) {
error_log('MySQL Connect Error (' . $conn->connect_errno . ') '
. $conn->connect_error);
}
/***
* Upon failure, the above will output a connection error notice such as
* user not found or password incorrect. It won't explicity say these
* things but you should be able to deduce which from the notice
***/
echo "Success... \n" . $conn->host_info ;
$mysqli->close();
#: Я, кажется, думают, что MySQL определяет, когда удаленный адрес, указанный такой же, как адрес сервера и автоматически преобразует его до localhost
, но я не уверен в этом.
Длинный и короткое этого является то, что если ваш MySQL является на тот же сервере как ваш PHP не имеет смысла открывать петлю сети для отправки данных только, чтобы получить его обратно , Вместо этого используйте localhost
.
Не объяснено ли это в документации mysqli? Проверьте http://php.net/manual/en/mysqli.construct.php –
«когда я загружу его на свой компьютер», вероятно, вы хотите использовать ресурсы поставщиков хост-провайдеров. В этом случае: мы не можем вам сказать, вам нужно будет спросить своего хостинг-провайдера об этих деталях. Если, однако, вы сами управляете этим «хостом», поэтому используйте виртуальную или выделенную систему, тогда вы сами должны знать эти ценности, опять-таки с чем-то, с чем мы не можем справиться. – arkascha
вы правы, но я думал, что если $ servername будет неестественным. Я также говорил с моими провайдерами хостинга, но у меня не было ответа. – payamQorbanpour