2012-01-24 2 views
1

Мое требование - запрашивать две базы данных. Обе базы данных находятся на разных хостах. Я создал два подключения к базе данных con1 и con. Если запрос возвращает null для con1, то он будет извлекать данные из con. Но код работает не так, как ожидалось. Любая помощь на том же будет очень признательна. Я получаю идентификатор ресурса № 18, хранящийся при получении заказов, даже если данные отсутствуют для того же самого для базы данных, подключенной через con1. Пожалуйста, помогите.Возможность подключения нескольких баз данных в php-проблемах

Это код, который я написал на php.

$get_bookings = mysql_query($SqlQry,$con1); 

if (!$get_bookings) 
{ 
    $get_bookings = mysql_query($SqlQry,$con); 
} 

данные являются взаимоисключающими так оба соединения должны быть активными.

+0

попробовать 'если ($ get_bookings! = NULL)' вместо 'если (! $ Get_bookings)' –

+0

Позвольте мне увидеть, если я понимаю, '$ возвращает con1'' false' тогда ваш скрипт запрашивает эти данные на '$ con', который возвращает 'id # 18'. Что мне не хватает? – Frankie

+0

Я повторил $ ​​get_bookings, я запрограммировал запрос так, чтобы он возвращал значение null для con1, а затем попадал внутрь if. Проблема заключается в возврате идентификатора # 18, даже когда данные отсутствуют в базе данных1. I. Con1 – user938588

ответ

0

Только подключайтесь ко второй/резервной базе данных, пока она вам не понадобится. Кроме того, если вы хотите, чтобы проверить, если вы получили результаты назад от использования запроса mysql_num_rows()

«mysql_query возвращает ложь, если есть ошибка не если результатов нет»

if (mysql_num_rows($get_bookings) > 0) //do something with results 
+0

Нет. Мне нужно, чтобы оба соединения были активны, поскольку данные являются взаимоисключающими. – user938588

+0

Затем возьмите данные, закройте соединение и откройте новое соединение. Не захватывайте от первого соединения, затем второго, затем сначала, затем второго. – jakx

0

Вы не проверять что вы считаете своей проверкой. Вы только проверяете, был ли запрос запущен, а не если он действительно соответствовал любым строкам. Вам нужно сделать что-то вроде mysql_num_rows, чтобы узнать, были ли возвращены какие-либо данные.

Смежные вопросы