Форум → Программирование → Пыхнуть хотите? → Готовые решения → goDB — библиотека работы с MySQL
goDB — библиотека работы с MySQL
Страницы: ← Предыдущая страница • Следующая страница →
-
19 января 2011 г. 1:13, спустя 25 минут 22 секунды
эх питон, питон )https://smappi.org/ - платформа по созданию API на все случаи жизни -
19 января 2011 г. 1:29, спустя 15 минут 44 секунды
charset Указывает кодировку. Не нужно делать вручную SET NAMES
его и так делать не нужно -
19 января 2011 г. 11:58, спустя 10 часов 28 минут 39 секунд
думаю, тут ошибка, наверное $result, а не result
да, спасибоего и так делать не нужно
спасибо за отзыв, если бы вы сделали бы его более развёрнутым, было бы лучше. -
19 января 2011 г. 13:06, спустя 1 час 8 минут 28 секунд
думаю, тут ошибка, наверное $result, а не result
да, спасибоего и так делать не нужно
спасибо за отзыв, если бы вы сделали бы его более развёрнутым, было бы лучше.bool mysql_set_charset (string $charset [, resource $link_identifier])
mysql_set_charset() функция устанавливает кодировку по умолчанию для текущего соединения.
Замечание: Функция работает с MySQL 5.0.7 или выше версиями
Это предпочтительный способ сменить кодировку.
Использование mysql_query() чтобы выполнить SET NAMES… не рекомендуется. -
19 января 2011 г. 13:29, спустя 22 минуты 19 секунд
fgets, mysql_set_charset тоже не рекомендуется, рекомендуется mysqli :)
только смысл не меняется, чтобы вызвать эту функцию, всё равно подключиться нужно сначала. -
19 января 2011 г. 14:25, спустя 56 минут 36 секунд
fgets, mysql_set_charset тоже не рекомендуется, рекомендуется mysqli :)
только смысл не меняется, чтобы вызвать эту функцию, всё равно подключиться нужно сначала.
http://php.net/manual/en/mysqli.set-charset.php
Note: This is the preferred way to change the charset. Using mysqli::query() to execute SET NAMES .. is not recommended.
имелось ввиду что тут на уровне пхп это делается, т.е. быстрее и проще чем SET NAMES, и да подключиться нужно -
-
-
13 апреля 2011 г. 12:34, спустя 9 дней 23 часа 12 минут
Подскажите, пожалуйста.
На сервере MySQL есть хранимые процедуры, возвращающие несколько резалтсетов. Обратиться с помощью mysqli_multi_query к ним получается, но с помощью goDB не получилось.
Запрос вроде такого возвращает ошибку:
$queries = array (
'call `h_giEngInfo`(?i)'
);
$datas = array (array (1));
$results = $db->multiQuery($queries, $datas, 'assoc');
Можно ли вообще в goDB получать от хранимой процедуры несколько результирующих наборов? -
13 апреля 2011 г. 12:52, спустя 18 минут 9 секунд
Можно попробовать обратиться напрямую к mysqli-методу: $db->multi_query() -
13 апреля 2011 г. 13:36, спустя 43 минуты 22 секунды
Да. Через $db->multi_query() работает. Только разбор результата не удобный - такой же как в родном mysqli. Придётся дописывать отдельно… -
13 апреля 2011 г. 13:48, спустя 12 минут 9 секунд
А нельзя ли добавить возможность возвращения методом $db->multi_query нормальный разбор результата по аналогии с возвращаемым методом multiQuery? Или чтобы multiQuery возвращал несколько значений, генерируемых хранимой процедурой? -
13 апреля 2011 г. 14:02, спустя 14 минут 25 секунд
Думаю это добавится только после того, как Вася_Ц сам заимеет необходимость в такой фишке. -
13 апреля 2011 г. 15:44, спустя 1 час 41 минуту 44 секунды
А нельзя ли добавить возможность возвращения методом $db->multi_query нормальный разбор результата по аналогии с возвращаемым методом multiQuery?
Можно попробовать через ->fetch() пропустить, но не уверен.Думаю это добавится только после того, как Вася_Ц сам заимеет необходимость в такой фишке.
Ну если написать заяву с конкретным описанием проблемы, то может и попробую что-нибудь сделать ) -
14 апреля 2011 г. 13:20, спустя 21 час 36 минут 17 секунд
Ок. Тогда описание проблемы:
Хранимые процедуры в MySQL позволяют использовать для получения результата оператор SELECT. Если в процедуре несколько SELECT'ов, то сгенерируют множественный набор результатов (multiple result set).
Выполняем запрос "CALL `h_giEngine(1)`". Функция h_giEngine(id) возвращает 5 наборов значений.
В goDB на данный момент
$db->query отрабатывает запрос, но возвращает только первый параметр. Без free_result дальнейшие запросы делать нельзя.
$db->multiQuery не отрабатывает вообще. Сваливается в godb.php на строке 1200 с сообщением 'multi results > queires'. Я так понимаю это сделано для защиты от ситуации, когда у нас разное количество запросов в базу и ответных возвращаемых наборов.
$db->multi_query отрабатывает правильно. Однако, в этом случае результирующие наборы неудобно обрабатывать. Приходится использовать такую конструкцию:
if ($db->multi_query($query))
{
$r = array ();
do
{
if ($result = $db->store_result())
{
while ($row = $result->fetch_assoc())
{
$r[$i][] = $row;
}
$result->free_result();
}
if ($db->more_results())
{
$i++;
}
} while ($db->next_result());
};
В массиве $r ассоциативный двумерный массив, подобный тому, который возвращает метод $db->multiQuery. С таким массивом потом можно относительно удобно работать.
Таким образом можно доработать метод multiQuery, чтобы он мог возвращать несколько наборов значений (в виде соответствующего массива в зависимости от значения параметра $fetches) тогда, когда производится вызов процедуры.
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!