Теряются данные
Добрый вечер!
Столкнулся с очень странной ситуацией. В сниппет передается город
Заранее благодарен.
Столкнулся с очень странной ситуацией. В сниппет передается город
$from = $scriptProperties['from'];
echo $from; // данные прилетают
$sql = "SELECT `code` FROM `cityes` WHERE `name` = '$from'";
$query = new xPDOCriteria($modx, $sql, array());
if ($query->prepare() && $query->stmt->execute()){
$arFrom = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>';
print_r($arFrom); // тут пустой массив
echo '</pre>';
}
Если подставить вместо $form необходимое значение в sql запросе, то массив нормально образуется. Кто-то сталкивался с подобной проблемой? MODX 2.6.3, PHP 7Заранее благодарен.
Комментарии: 3
Эх, молодежь. Это называется хакеры всех стран, заходите! Значение from откуда прилетает? С сайта?
Используйте подготовленные запросы.
Кстати, для отладки есть удобный метод toSql(), который выдает подготовленный распарсенный sql запрос.
Используйте подготовленные запросы.
Кстати, для отладки есть удобный метод toSql(), который выдает подготовленный распарсенный sql запрос.
Значение передается в сниппет через FormItRetriver,
$sql = "SELECT `code` FROM `cityes` WHERE `name` = :name";
// Подготавливаем шаблон SQL запроса
$statement = $modx->prepare($sql);
// Выполняем запрос подставляя данные
if ( $statement->execute(array("name"=>$from)) ) {
echo $from; //Значение есть
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>';
print_r($result); //Также, пусто
echo '</pre>';
}
Убрал вызов через FormItRetriver, поставил Забор данных через {$.post}, все получилось. Спасибо.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.