Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Какую библиотеку лучше использовать

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
eai
Отправлено: 16 Января, 2014 - 14:43:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Тут появилась задача использовать mySQL или msSQL (и еще Oracle хочут в перспективе) без переписке кода.

Вообщем то фигня война, но я столкнулся со следующими проблемами

Попытка использовать mssql_* обломилась так как с nvarchar (Unucode) работать нельзя вообще.

Попробовал PDO (хотя не люблю его) но там с MSSQL сказано что тока на венде или через странный и не понятный ODBC с каким то скачиванием драйвера от самих M$.

Посоветуйте, если кто с подобной задачей сталкивался, какю лучше либу использовать для доступа к SQL
 
 Top
imya
Отправлено: 16 Января, 2014 - 14:50:22
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




А чем mysqli не угодило?


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
IllusionMH
Отправлено: 16 Января, 2014 - 15:01:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




imya, ну пых может не только к 1 базе подключаться ;) Вдруг это одно из приложений, где основная база на MS SQL сервере, но из некоторых соображения решили коннектиться из пыха.
mysqli не умеет работать с MSsql и Oracle
 
 Top
EuGen Администратор
Отправлено: 16 Января, 2014 - 15:02:24
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




imya пишет:
А чем mysqli не угодило?

Тем, что не имеет никакого отношения к MS Sql Server, полагаю.

eai
Нужно определиться, что Вы хотите. С какой(какими) СУБД работать. Вообще, используйте паттерн Adapter и абстрагируйтесь от реализации запросов в ORM. В большинстве случаев это можно сделать. Либо же используйте в Вашем SQL только то, что поддерживается всеми СУБД, которые предполагается использовать - это уже сложнее, поскольку стандарту в полной мере не следует ни одна.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
imya
Отправлено: 16 Января, 2014 - 15:03:06
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




IllusionMH пишет:
mysqli не умеет работать с MSsql и Oracle

А php умеет?
Никогда не думал о связке php + MsSql


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
IllusionMH
Отправлено: 16 Января, 2014 - 15:06:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




imya, допустим есть здоровенное приложение на .net там база клиентов и куча фишек. Все это естественно на MS SQL
И есть какой-то сайтег, который был давно на котором все круто, но нужно дергать и редактировать некоторые прифили и прочее. Можно сделать сервис и пинать API, а можно подконнектиться к БД и поднять производительность.
 
 Top
eai
Отправлено: 16 Января, 2014 - 15:14:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




imya пишет:
IllusionMH пишет:
mysqli не умеет работать с MSsql и Oracle

А php умеет?
Никогда не думал о связке php + MsSql


Умеет и не плохо, но весь мой опыт сдулся когда на nvarchar нарвался
 
 Top
caballero
Отправлено: 16 Января, 2014 - 15:14:58
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




ADODB


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
eai
Отправлено: 16 Января, 2014 - 15:18:13
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




EuGen пишет:
imya пишет:
А чем mysqli не угодило?

Тем, что не имеет никакого отношения к MS Sql Server, полагаю.

eai
Нужно определиться, что Вы хотите. С какой(какими) СУБД работать. Вообще, используйте паттерн Adapter и абстрагируйтесь от реализации запросов в ORM. В большинстве случаев это можно сделать. Либо же используйте в Вашем SQL только то, что поддерживается всеми СУБД, которые предполагается использовать - это уже сложнее, поскольку стандарту в полной мере не следует ни одна.


Дык я тоже все так думаю тёзка (все верно пишешь), все это обломалось об NVARCHAR который "стандартный" php НЕ ТЯНЕТ ВАЩЕ.

Единственный способ который я нашел это конвертация NVARCHAR в VARCHAR но это фиговый путь, на то эти данные и юникод, что бы не ожидать от них что они все будут в одной кодировке

ЗЫ
Сам MSSQL использует кодировку UCS-2
(Добавление)
caballero пишет:
ADODB

Попробую но сдается мне все свалится на юникоде.
Видимо придется бодаться с M$ драйвером для Linux Недовольство, огорчение
(Добавление)
Вот тут один программер придумал ХАК
http://eugenioz[dot]blogspot[dot]ru/2013[dot][dot][dot]d-write-utf[dot]html

Читать так
CODE (htmlphp):
скопировать код в буфер обмена
  1. SELECT CAST(CAST([field] AS VARCHAR(8000)) AS TEXT) AS field FROM table


Писать так
PHP:
скопировать код в буфер обмена
  1. $value = 'ŽČŘĚЭБЦ';
  2. $value = iconv('UTF-8', 'UTF-16LE', $value); //convert into native encoding
  3. $value = bin2hex($value); //convert into hexadecimal
  4. $query = 'INSERT INTO some_table (some_nvarchar_field)  VALUES(CONVERT(nvarchar(MAX), 0x'.$value.'))';
 
 Top
caballero
Отправлено: 16 Января, 2014 - 16:01:47
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




а на фига линух если все равно будет стоять винда с mssql


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
IllusionMH
Отправлено: 16 Января, 2014 - 16:13:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




caballero, а что мешает с линух сервера с апачем+пых пинать "удаленный" с MS SQL?
 
 Top
eai
Отправлено: 16 Января, 2014 - 16:15:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




caballero пишет:
а на фига линух если все равно будет стоять винда с mssql


Причин много, к примеру
1. Нет желания выкладывать WinSrv во внешний мир
2. Нет желания покупать лицензию на сервак Win

MSSQL весьма распространенный сервак и не сказать что плохой, особенно когда данные большие, да и приложений для него масса и такое дело что все они "критические"

Вот эту строчку я бы поправил на
PHP:
скопировать код в буфер обмена
  1. $value = iconv('UTF-8', 'UCS-2LE', $value);


PHP:
скопировать код в буфер обмена
  1. SELECT CAST(CAST([field] AS VARCHAR(max)) AS TEXT) AS field FROM table

Это для истории Улыбка

(Отредактировано автором: 16 Января, 2014 - 16:19:29)

 
 Top
caballero
Отправлено: 16 Января, 2014 - 16:56:05
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




то есть на самом делевам это просто на всякий случай

но сути дела не меняет .
Не вижу проблем с виндой если она уже крутится
ну будет она доступна по 80 порту и что
по моемв вы сами не знаете чего хотите


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
eai
Отправлено: 16 Января, 2014 - 17:16:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




caballero пишет:
то есть на самом делевам это просто на всякий случай

но сути дела не меняет .
Не вижу проблем с виндой если она уже крутится
ну будет она доступна по 80 порту и что
по моемв вы сами не знаете чего хотите


Посадить IIS на главный сервак, свят свят Улыбка)))
Главный SQL это особо охраняемая машина, и туда ничего боле, святое, на него можно тока молиться Улыбка))
 
 Top
Stierus Супермодератор
Отправлено: 16 Января, 2014 - 17:30:49
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Ну я виже вариант только с PDO и установкой всех необходимых расширений. ODBC - это норм, не неизвестная фигня Улыбка Попробуй поставить какую-нить ORM, у них много разных адаптеров под разные базы, возможно нормально работают и с mssql через mssql_* а не через PDO. В zend framework у нас работа идет с mysql и mssql через PDO:
return Zend_Db::factory('Pdo_Mssql',
array(
'username' => $config->erp->mssql->username,
'password' => $config->erp->mssql->password,
'dbname' => $config->erp->mssql->dbname,
'host' => $config->erp->mssql->host,
'pdoType' => $config->erp->mssql->type,
)
);
 
My status
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB