Всё, что я хочу, так это в случае существующего соединения уже работать непосредственно с ним, а не открывать новое.
Спустя 3 часа, 26 минут, 24 секунды (5.05.2011 - 20:52) sergeiss написал(а):
Я бы так попробовал сделать.... Есть такая функция
Идентификатор соединения тут не обязателен (см. хэлп). Поэтому надо вызвать функцию без параметров. Если соединения с мускулем не было установлено... "If no connection is found or established, an E_WARNING level error is generated."
Надо перехватить это предупреждение. Возможно, посредством блока try-catch, хотя утверждать это однозначно не буду, не проверял в данном случае.
Я обычно проще делаю... В нужном месте просто "тупо" через require_once подключаю скрипт подключения к БД и ни секунды лишней не парюсь.
PS. А зачем вторую тему об этом же создал???
int mysql_errno ([ resource $link_identifier ] )
Идентификатор соединения тут не обязателен (см. хэлп). Поэтому надо вызвать функцию без параметров. Если соединения с мускулем не было установлено... "If no connection is found or established, an E_WARNING level error is generated."
Надо перехватить это предупреждение. Возможно, посредством блока try-catch, хотя утверждать это однозначно не буду, не проверял в данном случае.
Я обычно проще делаю... В нужном месте просто "тупо" через require_once подключаю скрипт подключения к БД и ни секунды лишней не парюсь.
PS. А зачем вторую тему об этом же создал???
Спустя 6 минут, 19 секунд (5.05.2011 - 20:59) inpost написал(а):
Основной сайт работает на mysql , где-то там был mysql_connect.
Теперь мой класс работает непосредственно через класс mysqli, который тоже при наследовании синглтоном требует указания параметров БД, тогда получится, что будет открыто второе соединение? Даже если я узнаю, что соединение на данный момент открыто, то не нужно вообще параметров указывать для класса mysqli?
Теперь мой класс работает непосредственно через класс mysqli, который тоже при наследовании синглтоном требует указания параметров БД, тогда получится, что будет открыто второе соединение? Даже если я узнаю, что соединение на данный момент открыто, то не нужно вообще параметров указывать для класса mysqli?
Спустя 6 минут, 2 секунды (5.05.2011 - 21:05) sergeiss написал(а):
Цитата (inpost @ 5.05.2011 - 21:59) |
Даже если я узнаю, что соединение на данный момент открыто, то не нужно вообще параметров указывать для класса mysqli? |
Можно подумать, что я или кто-то тут автор твоего класса... Я ж не знаю, что и как там у тебя делается. Но в самом общем случае, если не вникать в детали именно твоего класса, то ты можешь работать с открытым линком к БД, не указывая его в явном виде. Это и с мускулем, и с Постгре, и с другими БД так (если работаешь с библиотеками функций из ПХП).
Спустя 37 минут, 54 секунды (5.05.2011 - 21:42) neadekvat написал(а):
Если первое соединение открыто с помощью mysql_connect, а второе с помощью mysqli, то вряд ли второе может перехватить первое. Это ж даже разные библиотки.
Вот если бы и второе соединение открывалось с помощью mysql_connect - то другой вопрос.
Вот если бы и второе соединение открывалось с помощью mysql_connect - то другой вопрос.
Спустя 7 минут, 25 секунд (5.05.2011 - 21:50) inpost написал(а):
Тогда немного расширю вопрос, что насчет двух отдельных случаев, если, допустим, первый вариант 2 разные библиотеки по работе с мускулом: mysql & mysqli, а второй вариант: работа непосредственно с mysqli , то есть неизвестный под неизвестным именем уже работает с библиотекой где-то за пределами моей видимости, я пишу легко интегрирующийся скрипт, который должен не открывать своё собственное соединение к БД, а перехватывать уже открытое, как быть тогда?
Спустя 4 минуты, 29 секунд (5.05.2011 - 21:54) sergeiss написал(а):
Вот такая хрень работает, только что проверил:
Что касается MySQLi... Проверяй, поможет ли это тебе. Возможно, что да :) Я с Мускулем очень мало работал.
Либо, как вариант, что-то подобное найти для "мускуль-Ай".
$err=mysql_errno();
if( $err === false )
echo 'Не найдено ни одного подключения к мускулю<br>';
else
echo 'Подключение к мускулю имеется!!!<br>';
Что касается MySQLi... Проверяй, поможет ли это тебе. Возможно, что да :) Я с Мускулем очень мало работал.
Либо, как вариант, что-то подобное найти для "мускуль-Ай".
Спустя 3 минуты, 37 секунд (5.05.2011 - 21:58) Arni написал(а):
MySQLi даст возможность сделать несколько подключений без проблем.
Спустя 10 минут, 14 секунд (5.05.2011 - 22:08) inpost написал(а):
echo '<pre>';
$db = mysql_connect(DBSERVER,DBUSER,DBPASSWORD) or die(mysql_error());
mysql_select_db(DATABASE,$db) or die(mysql_error());
$res = mysql_query("SELECT * FROM `table`");
$row = mysql_fetch_assoc($res);
print_r($row);
// Доступ к данным выше не имею, но я знаю, что соединение уже было открыто, или могло быть открыто.
// Там может быть как mysql , так и mysqli как процедурка или ооп.
// Далее синглтон, про который я говорил ранее:
class DB extends MySQLi {
private static $instance;
public static function _() {
if(!self::$instance) {
$cn = __CLASS__;
self::$instance = new $cn(DBSERVER,DBUSER,DBPASSWORD,DATABASE);
}
return self::$instance;
}
}
$result = DB::_()->query("SELECT * FROM `table`");
while($row = $result->fetch_assoc()) {
print_r($row);
}
_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).