php mysql_select_db параметр 2 не работает
У меня есть следующий код для тестирования, и я только что обнаружил, что 2-й параметр на самом деле не работает.
$conn1 = mysql_connect("127.0.0.1", "xxxx", "xxxx");
$conn2 = mysql_connect("127.0.0.1", "xxxx", "xxxx");
mysql_select_db("test", $conn1);
mysql_select_db("yangshengfun", $conn2);
if (!$res = mysql_query("select * from proxy_ips limit 1", $conn1)) {
echo mysql_error($conn1);
}
if (!$res = mysql_query("select * from wp_posts limit 1", $conn2)) {
echo mysql_error($conn2);
Таблицы в базе данных 'test' и 'yangshengfun' существенно отличаются. Произошла ошибка во время выполнения этого кода:
Table 'yangshengfun.proxy_ips' doesn't exist
Кажется, когда я вызываю mysql_select_db для $conn2, он тоже меняет текущий db $conn1, есть идеи?
4 ответа
Попробуй это
$conn1= mysql_connect("host_name", "user_name", "pass_word") or die('not connected');
mysql_select_db("database_name", $conn1);
Здесь функция "die($message)" печатает сообщение, если функция mysql_connect() не может соединиться с db.
Используйте вместо этого mysqli:
<?php
$conn1 = new mysqli(host, user, password, db);
$conn2 = new mysqli(host2, user2, password2, db2);
?>
Попробуй это
$conn1 = mysql_connect("127.0.0.1", "xxxx", "xxxx", true);
$conn2 = mysql_connect("127.0.0.1", "xxxx", "xxxx", true);
Замечания: mysql_*
устарела. использование mysqli_*
или же pdo
Из документации mysql_connect()
руководства по PHP
Если будет выполнен второй вызов mysql_connect() с теми же аргументами, новая ссылка не будет установлена, но вместо этого будет возвращен идентификатор ссылки уже открытой ссылки. Параметр new_link изменяет это поведение и заставляет mysql_connect() всегда открывать новую ссылку, даже если mysql_connect() ранее вызывался с теми же параметрами. В безопасном режиме SQL этот параметр игнорируется.
Это (mysql_*
) расширение не рекомендуется с PHP 5.5.0
и будет удален в будущем. Вместо этого, подготовленные заявления MySQLi
или же PDO_MySQL
расширение должно быть использовано для отражения атак SQL-инъекций!