Тернопіль - Форум Файного Міста
Назад   Тернопіль - Форум Файного Міста > Комп'ютерні обговорення: Hard, Soft, Nets, Design, CAD etc > Програмування Форум ВКонтактє Форум в Твітері

Програмування системне, прикладне, web, макро, процедурне ... на різних рівнях


Основи роботи з PHP Data Objects

Відповідь
 
Параметри теми Параметри перегляду
Старий 14.07.2017, 14:56 #2699594   #1
andrik9191
Типово Основи роботи з PHP Data Objects

Всім привіт. Недавно почав знайомитися з PDO і виникла проблема що не можу виконати запит який раніше писав на MySQL. Надіюсь тут є люди які вже краще вивчили PDO

Ось приклад:

Код PHP:
if($number != 0){$sql_filters "WHERE number > ".$number." AND date < NOW()";} else{$sql_filters "";}

$sql "SELECT t.field1, t.field2, t.field3
FROM table1 t
"
.$sql_filters."
LIMIT "
.$first_el.", ".$last_el
А коли я пробую в PDO написати такий запит то виходять помилки

Код PHP:
SELECT t.field1t.field2t.field3
FROM table1 t
:sql_filters
LIMIT 
:first_el, :last_el 
Змінні first_el і last_el передаються без проблем бо там просто значення, а в sql_filters вже виникає помилка бо PDO фільтрує значення і воно вже приходить не таким як я його передаю

Але ж повинен бути якийсь спосіб рішити таку проблему бо це основи звернень до бази даних?
По суті все що треба це добавити частину запиту з змінними до .. запиту якщо значення змінної не дорівнює != "якесь там значення"

П.С. пробував через IF ELSE, CASE, sql-функцію, також нічого не получається, всюди помилки, ну або хіба що в мене руки криві
andrik9191 зараз поза форумом  
Офтопів до посту: 0  Офтоп  
Старий 14.07.2017, 15:38 #2699606   #2
Mr_RAS
 
Аватар для Mr_RAS
Типово Відповідь: Основи роботи з PDO

може так?

Код PHP:
<?php

if ($number != 0) {$sql_filters "WHERE number > :number AND date < NOW()";} else {$sql_filters "";}

$sql "SELECT t.field1, t.field2, t.field3
FROM table1 t
#part1#
LIMIT :first_el, :last_el"
;

$param = array("first_el" => $first_el"last_el" => $last_el);

if (
$number != 0) {
    
$sql str_replace("#part1#"$sql_filters$sql);
    
$param_add = array("number" => $number);
    
$param array_merge($param$param_add);
}

?>

Востаннє редагував Mr_RAS: 14.07.2017 о 15:58.
Mr_RAS зараз поза форумом  
Подякував(ла):
andrik9191 (16.07.2017)
Офтопів до посту: 0  Офтоп  
Відповідь


Параметри теми
Параметри перегляду

Ваші права у розділі
Ви не можете створювати теми
Ви не можете писати дописи
Ви не можете долучати файли
Ви не можете редагувати дописи

BB-код є Увімк.
Усмішки Увімк.
[IMG] код Увімк.
HTML код Вимк.

Швидкий перехід




vBulletin 3.8.7 ; Переклад: © Віталій Стопчанський, 2003-2017 Форум Файного Міста Тернопіль
VBSilver style released under GPL by TC Port of subSilver released by and copyright of phpBB
е-mail адміністратора серверу
Часовий пояс GMT +2. Поточний час: 08:14.