powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Правильно составить запрос php и mssql
31 сообщений из 31, показаны все 2 страниц
Правильно составить запрос php и mssql
    #38339269
vanek2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется запрос в php, возвращающий значение поля Items у определенного логина. Данный запрос работает только для одного аккаунта (то есть нельзя в цикле пройтись по всей таблице).

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
mssql_query("
	declare @vault varbinary(1920); 
	set @vault=(SELECT Items FROM warehouse WHERE login='123456');
	print @vault;
");
	
	$val = substr(mssql_get_last_message(), 2);
	echo $val; 



Необходим запрос вида:

Код: php
1.
2.
3.
4.
5.
6.
$result = mssql_query("SELECT Items FROM warehouse");	
	
	while ($arr = mssql_fetch_assoc($result)) 
	{
		echo $arr['Items'];
	}


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

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38339285
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо из-за того, что поле Items бинарной,
а, простите, ЧТО вы хотите увидеть?
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38339296
vanek2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, в первом запросе выводится то, что надо FFFFFF....F, во втором запросе уже ??.? знаки вопросы + кракозябли.
Напоминаю, первый запрос не подходит мне, т.к. нельзя пройтись в цикле по всей таблице.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38339304
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38339319
vanek2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, о благодарствую, что-то не додумался. Можно ли в запросе проделать подобные манипуляции?
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38339335
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если в ms sql есть подобная функция - то да. смотри хелп по сиквелу. мы тут непомощники
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38339349
vanek2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, есть проблема, второй запрос выводит всего 16 ячеек длиной 32 символа, а поле items состоит из 120 ячеек длиной 32 символа.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38339351
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я тут причем?
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38339355
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.php.net/manual/ru/function.mssql-num-rows.php

вот пользуйся. если оно показывает 16 строк значит проблема в запросе. если 120 значит в твоем коде вывода
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38339377
vanek2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, вы не поняли, строка 1, в ней бинарное поле Items имеет длину 3840 символов из них показывается только 512.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38339382
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ini_set ( 'mssql.textlimit' , '65536' );
ini_set ( 'mssql.textsize' , '65536' );
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38339398
vanek2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не помогло и глянул в phpinfo там по дефолту стояло.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341674
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vanek2000,

Тип поля в БД какой?
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341676
vanek2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deblogger, varbinary(1920)
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341720
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vanek2000deblogger, varbinary(1920)
авторимеет длину 3840 символов
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341845
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при чем тут символы я тоже не понял. varbinary это байты без заполнения нулями в binary. То есть нельзя ожидать что варбинари вернет то количество байт, которые указаны в свойствах поля. Сколько записали штук - столько и получите.

Символ же может занимать 1, 2, 3 или 4 байта. Кроме того для символа нужны байты кодировки. Бинарные данные не нуждаются.

Однако откуда берется такое красивое число 512 надо разобраться, это 1000000000 двоично. Кто-то явно режет. Или может быть просто совпало в этом поле.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341861
vanek2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deblogger,

да где-то режется, т.к. с другими строками тоже самое. Только вот незнаю как выяснить кто режет, пхп или скл.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341871
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vanek2000ScareCrow, есть проблема, второй запрос выводит всего 16 ячеек длиной 32 символа, а поле items состоит из 120 ячеек длиной 32 символа.

Вот оно где, 512.

Что за ячейки? В общем тут похоже надо резать не дожидаясь перитонита.

Поле items согласно типу состоит из 1920 байт. Как вы ими распорядитесь - зависит от вас. Еще раз. varbinary не фиксировано по длине, потому что var. Вы просто не сможете записать больше указанного числа байт, а меньшее число запишется и вернется без заполнения пустого пространства нулями.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341877
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vanek2000,

Ну так надо на сервер зайти и проверить прямо из консоли mysql
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341887
vanek2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deblogger,

Результат работы 1-его запроса:
автор1E6F854AB0A9007F0078000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34000068297A000000E0000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0100ABD0221E000000D0000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14EF62AA9D9F007F0060000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E6F8595C3C8007F0088000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF256FFEB59392007F00C0000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0100C202BE00270000D00000000000000100FF21ED37000000D0000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D6F7C1A1AA2007F00787D0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E6F85AD2082007F00A8000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C3737221AEC004A0080000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000014F3C4E6000000000000000000000C6B53DAC97A007F00D0000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF176B537BF16B007F00D00000000000001D6F80906CDD007F00887D0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E6F855A8F6B007F0098000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF056F4D11139C007F0080000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF176B53B9F1C8007F00D0000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07D64213ACF1005C0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E6F85352C3D007F00B8000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D6F7DCD4A3F007F00A87D0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF056F4D7C8B9100470080000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11005B174D6300000050000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16EF5AAC80E8007F00086D000000000016EF5F352C0B007F00086D0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D6F7D098C2C007F00987D0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D6F7DF75A06007F00B87D0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Результат работы 2-го запроса:
автор1E6F854AB0A9007F0078000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34000068297A000000E0000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0100ABD0221E000000D0000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14EF62AA9D9F007F0060000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341891
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпри чем тут символы я тоже не понял. varbinary это байты без заполнения нулями в binary.
символов не может быть больше чем байт. ну вот никак.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341912
vanek2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deblogger,

У меня mssql и если второй запрос выполнить на сервере, то он просто вернет <binary>, я так понял его надо CAST'ом преобразовать в другой тип?
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341924
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CAST(item as varchar(4000))
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38341995
vanek2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow,
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38342529
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторпри чем тут символы я тоже не понял. varbinary это байты без заполнения нулями в binary.
символов не может быть больше чем байт. ну вот никак.

Зато может быть меньше.

Это просто техническая грамотность. Нельзя говорить про байт - символ, и уж подавно про символ - байт. Какой символ у 0x00? [nul]? Кроме того байты могут быть в дополнительном коде - то есть отражать отрицательное число. Которое в пересчете на символ вообще немыслимо.

В фундаментальном смысле символ это не байт, а файл. Если даже состоит из одного байта в ISO 8859-1.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38342543
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vanek2000deblogger,

У меня mssql и если второй запрос выполнить на сервере, то он просто вернет <binary>, я так понял его надо CAST'ом преобразовать в другой тип?

Понимаете, надо заранее знать что содержится в бинарном поле чтобы оно было полезно. Я понятия не имею что у вас там записано, а вы должны знать, или узнать.

Допустим это текст. В какой кодировке? Допустим это юникод - какой именно? Кроме того текст может быть предварительно закодирован каким-нибудь base64, или типа того.

Короче, вы должны знать о формате массива данных.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38342574
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
ScareCrowсимволов не может быть больше чем байт. ну вот никак.Смешные вы. varbinary в php приходит как строка шестнадцатиричных цифр. Один байт - две шестнадцатиричные цифры == два символа.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38342575
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowсимволов не может быть больше чем байт. ну вот никак.В общем случае - может. Например, набор символов 0-9,A-F (используемых в шестнадцатиричном представлении чисел) свободно упихивается по два символа на байт. С набором символов 0 и 1 "упаковка" получается аж по 8 символов на байт. Разумеется, это справедливо только если только не цепляться к ставшим привычными восьми и более битным кодовым таблицам.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38342595
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Не пользуйтесь mssql_* функциями. Они используют древнюю библиотеку доступа к sql серверу, которая давно не поддерживается. В ней остались ограничения версии 6.0 - длина varchar/varbinary поля не более 256, длина имени поля не более 30 и т.п. Скачайте http://msdn.microsoft.com/en-us/sqlserver/ff657782 и перепишите код под sqlsrv_* функции.
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38342677
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗато может быть меньше.
возвращаемся к
ScareCrowvanek2000deblogger, varbinary(1920)
авторимеет длину 3840 символов
...
Рейтинг: 0 / 0
Правильно составить запрос php и mssql
    #38343748
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?,

Ну да, в мануале на майскуль отражена та же история про варчары и варбинары. Когда-то были по 255, с тех пор адреса расширили до слова из двух байт.
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Правильно составить запрос php и mssql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]