Класс для безопасной работы с MySQL

Absinthe

жожо
появился квип - из него тоже.
Наоборот, из него сделали кросспротокольный мессенджер. И привязали пользователей к своим сервисам.
Хотя после смерти jabber и ICQ в нем уже нет смысла.
 

NBK

Новичок
Задал вроде несложный вопрос, а тут спор развели.
Ну хоть тему оживили немного. ;)

По моему вопросу по моему все достаточно понятно.
возможно ли как-то заменить на подобное?
PHP:
                $sql = "update main set ?u where ?u";
                $data = array(
                'TIME_GET' => $timeget,'PNAME' =>$pl, 'MNAME' => $mname, 'MET' => $met, 'CR' => $p_cr,
                'UID' => $uid, 'NICK' => $nick, 'STATUS' => $status, 'RAITING' => $rating, 'ALLY' => $ally
                );
                $data2 = array('C_1' => $gal, 'C_2' => $syst, 'C_3' => $pnum);
                $query = $db->query($sql,$data,$data2);
в данном случае при обработке $data2 в сам запрос хотел вставить
Код:
'C_1' = $gal and 'C_2' = $syst and 'C_3' = $pnum
В моем текущем скрипте это чуток востребовано но на самом деле достаточно редко востребовано, при больших массивах в части where, таблицы нужно оптимизировать и не городить космос.
 

Фанат

oncle terrible
Команда форума
По моему вопросу по моему все достаточно понятно.
Нет, не понятно.
в данном случае при обработке $data2 в сам запрос хотел вставить
зачем?
В моем текущем скрипте это чуток востребовано
ЧЕМ КОНКРЕТНО востребовано - ты можешь человеческим языком сказать?

Если бы ты уже родил внятный вопрос, вместо повторения одного и того же, тебе бы уже ответили.
В текущем виде твой вопрос не имеет смысла - нет ни одной причины вынимать из запроса статический кусок и пихать его в параметры.
 

hell0w0rd

Продвинутый новичок
Нет, не возможно. Нужен query-builder для такого. Напиши обертку вокруг либы. Или возьми https://github.com/nkt/flame например)
PHP:
$sql = $db->update('users', [
    'username' => ':username'
])->where([
    'id' => 'i:id'
]);

$db->prepare($sql)->execute([
    'username' => $username,
    'id' => $id
]);
В query builder можно использовать только плейсхолдеры, а дальше уже вставлять данные.
 

WMix

герр M:)ller
Партнер клуба
hell0w0rd, прикольно придумал кстати. теперь бы добавить класс/конфиг таблица, который хранит/считывает метаданные (типы полей), сможешь автоматом генерить placeholders
 

WMix

герр M:)ller
Партнер клуба
ага, но отличие есть явное от большинства, типизированный уже на уровне query-builder
 
Сверху