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-инъекций!

Другие вопросы по тегам