Ребята
ThunderCat
ThunderCat
trevoga_su
trevoga_su
, спасибо что подсказали. Почитал, поразбирался. Переделал запрос к бд через PDO и подготовленные запросы. Ниже приведу пример того что у меня получилось, прошу вас посмотреть, может ещё какая-нить критика конструктивная будет, так как мне по идее надо бы htmlspecialchars() или htmlentities() или санитизинг делать значений из $_POST, поэтому буду признателен если откоментите как это правильнее производить
Вот пример того что у меня получилось:
const DB_HOST = 'localhost';
const DB_USER = 'xxx';
const DB_PASS = 'xxx';
const DB_NAME_ = 'xxx';
function pdo_prepquery($query,$prep_arr)
{
try {
$dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME_, DB_USER, DB_PASS,
array(PDO::ATTR_PERSISTENT => true,
PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES CP1251'));
//echo "Подключились\n";
} catch (Exception $e) {
die("Не удалось подключиться: " . $e->getMessage());
}
try {
echo $query;
$dbh->setAttribute(
PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$dbh->beginTransaction();
$sth=$dbh->prepare($query);
$sth->execute($prep_arr);
$result = $dbh->lastInsertId();
$dbh->commit();
echo 'lastInsertId:'.$result;
return $result;
} catch (Exception $e) {
$dbh->rollBack();
echo "Ошибка[" . __FUNCTION__ . "]" . $e->getMessage();
return false;
}
}
// some_code up to here
$i=0;
while (// some statements) {
$query = "Update `some_table` set `a`=:a,`b`=:b, `c`=:c, `d`=123 where `e`=:e";
$prep_arr = array(':a' =>$_POST['some_var_a'],
':b' => $_POST['some_var_b'],
':c' => $some_var_c,
':e' => $some_var_e);
$qr[$i] = pdo_prepquery($query, $prep_arr);
echo 'testo:' . $qr[$i];
$i++;
}
// some_code down from here