Я новичок в использовании PHP. Я сделал что-то простое, чтобы подключиться к MySQL и выбрать базу данных:
$conn = mysqli_connect($db_host, $db_admin, $db_pass) or die(mysql_error()); // these variables are previously declared and initialized $selected_db = mysql_select_db($db_name, $conn) or die(mysql_error());
Когда я протестировал его, я получил успешно установленное соединение и следующее предупреждение:
mysql_select_db() expects parameter 2 to be resource, object given
Почему это случилось? Как я могу это исправить?
Вы используете как mysqli
и mysql
просто меняете
mysql_select_db()
С
mysqli_select_db
Ссылка http://php.net/manual/en/mysqli.select-db.php
updated
Когда вы используете mysql_select_db
вы должны использовать mysql
api, поэтому вам нужно exatibilish подключение к базе данных с помощью mysql sintax mysql_connect
Reference
Mysql теперь устарел, поэтому правильно использовать mysqli
или PDO
В дополнение к использованию mysqli_ * последовательно (как упоминалось в ответе Фабио ), есть дополнительная проблема (и предложение):
Хотя порядок параметров в mysql_select_database
– это имя базы данных, соединение, порядок параметров в mysqli_select_db
– это соединение, имя базы данных.
mysqli_select_db($conn, $db_name);
В качестве предложения mysqli_connect
включает дополнительный четвертый параметр для подключения к конкретной базе данных. Это позволит вам вообще не вызывать mysql_select_db
.
$conn = mysqli_connect($db_host, $db_admin, $db_pass, $db_name) or die(mysqli_connect_error());
Вы должны изменить mysql_select_db
на mysqli_select_db
как указано в Fabio
но вы получите сообщение об ошибке
mysqli_select_db() expects parameter 1 to be mysqli, string given
Для кого-то, испытывающего это, измените порядок параметров, например, в этом случае дайте
$selected_db = mysqli_select_db($conn, $db_name)