![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| evilice |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 27.11.2008 Репутация: нет Всего: нет |
Я написал метод, который получает данные из MySQL и динамически создает экземпляр класса, свойства которого соответствуют полям таблицы.
например: таблица в MySQL:
PHP class:
Но вот проблема, т.к. MySQL возвращает значения, как "строку", все свойства экземпляра автоматически становятся "String". Я, конечно, понимаю, что для PHP - это не принципиально, но для моей системы очень даже важно! Просто есть ещё один метод, описанный в родительском классе, который генерирует SQL-запросы основываясь на наборе свойств и их типах. Таким образом запрос получается вида:
а должен был быть таким:
Так вот вопрос заключается в следующем: как заставить mysql возвращать реальные типы данных(если это возможно), ну или как со 100% уверенностью определить int или string скрыт в строке. |
||||||||
|
|||||||||
| enoff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 30.6.2010 Где: Санкт-Петербург Репутация: 11 Всего: 13 |
далее регулярками. |
|||
|
||||
| evilice |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 27.11.2008 Репутация: нет Всего: нет |
Решение подкралось откуда и следовало ожидать.
Я имею опыт разработки на Java и у меня вошло в привычку для всех свойств класса прописывать getters и setters. Так вот при получении ответа от БД, я собираю имя сеттера на основе имени поля таблицы. т.е. если имя поля `id` преобразовываю в setId и в качестве параметра передаю значение поля, а сеттере делаю с этим значением всё что нужно.
ну и непосредственно код одного сеттера:
Это сообщение отредактировал(а) evilice - 20.10.2010, 08:28 |
||||
|
|||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
Зачем такие извраты? Есть show fields, который вернет очень даже удобный RS -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| enoff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 30.6.2010 Где: Санкт-Петербург Репутация: 11 Всего: 13 |
solenko, спасибо, не знал. Перед постом поискал, ничего не нашел(
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |