Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

03.01.2010, 21:54
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Код:
SELECT NAME_CONST((select password from users where id=1),1) FROM article WHERE id=1
Возвращает Incorrect arguments to NAME_CONST.
Если судить по статье квазара,то должен бы возвратить другую ошибку.
В чем загвоздка? Я так никогда и не освою этот метод sql-inj?( 
|
|
|

04.01.2010, 16:26
|
|
Участник форума
Регистрация: 07.09.2009
Сообщений: 298
Провел на форуме: 390301
Репутация:
3
|
|
CREATE TABLE `ocenki` (
`num` INT NOT NULL AUTO_INCREMENT ,
`art` INT NOT NULL ,
`user` VARCHAR NOT NULL ,
`oc` SMALLINT NOT NULL ,
PRIMARY KEY ( `num` ) ,
INDEX ( `art` )
)
Ответ MySQL:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL, `oc` SMALLINT NOT NULL, PRIMARY KEY (`num`), INDEX (`art`))' at line 1
Что не так?
|
|
|

04.01.2010, 20:00
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
в этой строке:
`user` VARCHAR NOT NULL ,
нужно указать длину поля, т.е. например так:
`user` VARCHAR(20) NOT NULL ,
т.к. int и smallint имеют дефолтную длину, если такова не указана вручную, в отличие от VARCHAR
|
|
|

05.01.2010, 12:48
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Установил на сайт воблу, но забыл указать перфикс таблиц. Собственно, вручную их переименовывать реально жудко.
Может быть есть какой запрос на SQL, который ко всем таблицам припишет нужный мне перфикс???
|
|
|

05.01.2010, 16:51
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Полно вариантов, особено в никсах, но мне по душе скриптом такие вещи делать - без предварительного дампа, без зависимости от системы и бла-бла-бла
PHP код:
<pre>
<?php
$dbname = 'instant'; # Имя БД
$prefix = 'vobla_'; # Желаемый префикс
$link = mysql_connect("localhost", "root", "root"); # Хост, юзер, пароль
$query = "SHOW TABLES FROM " . $dbname;
mysql_select_db($dbname);
$result = mysql_query($query,$link);
while ($table = mysql_fetch_array($result)) {
$new = mysql_query ("ALTER TABLE `" . $table[0]. "` RENAME `" . $prefix . $table['0'] . "`", $link);
print $table[0] . " ---> " . $prefix . $table['0'] . "\n";
}
mysql_close($link);
print "Замена произведена \n";
?>
</pre>
Скуль запросом чтобы такое сделать (одним) - хз
Последний раз редактировалось Pashkela; 05.01.2010 в 19:07..
|
|
|

05.01.2010, 19:28
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Или еще один способ, чисто через phpmyadmin, аналогов не видел:
1. phpmyadmin->выбираем БД->SQL
2. Выполняем такой запрос:
SELECT CONCAT(CONCAT('ALTER TABLE ', table_name),CONCAT(' RENAME ', CONCAT('pref_', table_name, ';'))) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='instant' LIMIT 0 , 100;
где "pref_" - нужный префикс, в LIMIT указываем кол-во таблиц для изменения, "instant" - имя БД, в которой мы хотим добавить префикс к таблицам. В результате получим текст sql-запроса, который останется только скопировать и выполнить:
т.е. полученный текст копируем, опять лезем в SQL, вставляем, выполняем, всё.
PS: Можно вывести в файл и потом копировать оттуда
Последний раз редактировалось Pashkela; 05.01.2010 в 19:33..
|
|
|

05.01.2010, 20:34
|
|
Постоянный
Регистрация: 06.04.2009
Сообщений: 383
Провел на форуме: 1288105
Репутация:
328
|
|
какой самый быстрый способ выбора последних n строк с таблице , в том же порядке в котором идут, длю удобства есть id (auto inc)
|
|
|

05.01.2010, 20:48
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
select * from table order by id DESC limit n,m
Последний раз редактировалось Pashkela; 05.01.2010 в 20:51..
|
|
|

05.01.2010, 20:54
|
|
Постоянный
Регистрация: 06.04.2009
Сообщений: 383
Провел на форуме: 1288105
Репутация:
328
|
|
Сообщение от Pashkela
select * from table order by id DESC limit n,m
не так я уже делал, только один витаскивал, n-ий с конца
|
|
|

05.01.2010, 20:58
|
|
Постоянный
Регистрация: 06.04.2009
Сообщений: 383
Провел на форуме: 1288105
Репутация:
328
|
|
select * from table order by data limit $количество_записей-N ,$количество_записей
только вот такой вариант заработал как надо, но тут заранее еще надо и количество всех записей узнавать, хоте бы что бы без этого было
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|