[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Класс для работы с БД
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9
Эли4ка
Цитата (Astin @ 19.05.2018 - 20:02)
Вот вам из вашей ссылки

$order = isset($_GET['order']) ? $_GET['order'] : ''; // просто для полноты кода
$sort = isset($_GET['sort']) ? $_GET['sort'] : '';

$allowed = array("name", "price", "qty"); //перечисляем варианты
$key = array_search($sort,$allowed); // ищем среди них переданный параметр
$orderby = $allowed[$key]; //выбираем найденный (или, за счёт приведения типов - первый) элемент.
$order = ($order == 'DESC') ? 'DESC' : 'ASC'; // определяем направление сортировки
$query = "SELECT * FROM `table` ORDER BY $orderby $order"; //запрос 100% безопасен


Что здесь происходит? Здесь идет дополнительная проверка, ДОПОЛНИТЕЛЬНАЯ,
перед запросом в БД

Эли4ка вы мне что предлагаете? Чтобы я такое

$order = isset($_GET['order']) ? $_GET['order'] : ''; // просто для полноты кода
$sort = isset($_GET['sort']) ? $_GET['sort'] : '';

Запихал в класс с БД?

А вам не думается что код как то должен разграничиваться, класс с бд, дополнительные функции проверок, что то еще

Цитата
В любом случае для INSERT INTO нужно передовать как данные так и таблицы в
которые заносить эти данные. В то случае кому как удобно, можно обычным
методом передать, можно через массив. Во втором примере данные обрабатываются автоматически.

Вы что можете сами предложить по поводу INSERT INTO???
Я даже не знаю как упростить процесс добавления в бд, по любому передавать таблицы и данные, и пока что я выложил два примера.
Вы сами что можете посоветовать по тому
поводу, есть у вас что предложить или может у вас есть какая то идея по этому?

Сделайте вот так:
$data = Array ("login" => "admin",
"firstName" => "John",
"lastName" => 'Doe'
);
$id = $db->insert ('users', $data);
if($id)
echo 'user was created. Id=' . $id;

а не вот так:

$dat = array( 'users' => $login, 'email' => $email, 'pass' => hashPasswd( $pass ),
'referer' => $ref_name, 'referer_id' => $ref_id, 'date_reg' => $date,
'ip' => $ip_user, 'activat' => 0 );

$lid = DB::insert( 'users_a', $dat, array( '%s','%s','%s','%s','%d','%s','%s','%d' ) );

Будет удобнее.
Вы для начала поняли для чего эта статья?Вы посчитали,что escape это вся безопасность-я вам показала, что не вся.
Этот код не надо пихать в класс с БД, зачем.
Вот что будет если я в ваш класс для LIMIT передам строку? Как ваш класс ее обработает?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.