2013-12-12 3 views
1

PHP + MySQL, Что произойдет при вызове mysql_connect дважды, как и что:Поведение mysql_connect если вызывается дважды

$link = mysql_connect($server, $user, $pass); 
$link = mysql_connect($server, $user, $pass); 

PHP, кажется, не генерирует никакого уведомления. Не проигнорирована ли вторая строка или установлено новое соединение (если да, то это автоматически закрывает предыдущее соединение)?

Я знаю, что такие ситуации не должны происходить в первую очередь.

+2

Подробнее о параметре 'new_link', который может быть передан' mysql_connect() ': http://www.php.net/manual/en/function.mysql-connect.php – ComFreek

+0

Пожалуйста, не используйте устаревшие' mysql_' ... использовать функции 'mysqli_' или оболочку DB вместо ... –

+0

[** Пожалуйста, не используйте' mysql_ * 'функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). – h2ooooooo

ответ

1

Я знаю его старый вопрос, но я тоже задавался вопросом о том же. Итак, я сделал тест, чтобы проверить, действительно ли php игнорирует одно соединение или открывать новое соединение (что было бы плохо, поскольку это, вероятно, добавило бы дополнительную нагрузку на базу данных).

<? 
$test1 = mysqli_connect("127.0.0.1","root","pass","test_db"); 
$test2 = mysqli_connect("127.0.0.1","root","pass","test_db"); 
print "<pre>"; 
print_r($test1); 
print_r($test2); 
print "</pre>"; 
?> 

Приведенное выше выводит [thread_id]. Сравнивая два идентификатора, я обнаружил, что они не были похожи, поэтому я должен предположить, что теперь открыты 2 соединения.

+0

[thread_id] => 71 & [thread_id] => 72 будет единственной разницей. 71 и 72 могут различаться в разных системах. –

+0

Было бы неверным предполагать, что на этом основаны 2 соединения? – JPJens

+0

Я тоже смущен. Но, я думаю, последнее соединение будет открытым. Как a = 10; а = 10; –