Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
- $query = $db->prepare("SELECT * FROM table WHERE (id = ? AND user_id = ?)");
- $db->execute($query, array($_id, $_user_id));
Но зачастую она не фильтровала переменные, приходилось дописывать самому :)Copy Source | Copy HTML
- public function bindValue($Parameter, $Value, $DataType = NULL)
- {
- if ($DataType === NULL)
- {
- $DataType = gettype($Value);
- }
- $DataType = strtolower($DataType);
- if ($DataType === 'boolean' || $DataType === 'bool' || $DataType === PDO::PARAM_BOOL)
- {
- $DataType = PDO::PARAM_BOOL;
- }
- elseif ($DataType === 'null' || $DataType === PDO::PARAM_NULL)
- {
- $DataType = PDO::PARAM_NULL;
- }
- elseif ($DataType === 'integer' || $DataType === 'int' || $DataType === PDO::PARAM_INT)
- {
- $DataType = PDO::PARAM_INT;
- }
- elseif ($DataType === 'string' || $DataType === 'str' || $DataType === PDO::PARAM_STR)
- {
- $DataType = PDO::PARAM_STR;
- }
- elseif ($DataType === 'lob' || $DataType === PDO::PARAM_LOB)
- {
- $DataType = PDO::PARAM_LOB;
- }
- elseif ($DataType === 'stmt' || $DataType === PDO::PARAM_STMT)
- {
- $DataType = PDO::PARAM_STMT;
- }
- else
- {
- $DataType = PDO::PARAM_STR;
- }
-
- return parent::bindValue($Parameter, $Value, $DataType);
- }
-
- $stmt->bindValue(":val1", 'string'); //string
- $stmt->bindValue(":val2", 123); //integer
- $stmt->bindValue(":val3", TRUE, 'int'); //integer
блокирование чуваков которые шлют не то что надо
А не вставлять проверки хрен нает где… что бы потом охреневать с того что все фильтры разбросаны по хреновой тучи файлов.
Панацея от SQL-инъекций — запросы с параметрами