Как сделать true и false при запросе UPDATE

$c = $modx->newQuery('Objekt');
    $c->command('update');
    $c->set(array(
        'name'  => $name
        ));
    $c->where(array(
        'id'    => $id,    
    ));
    $c->prepare();
    $c->stmt->execute();
$c->stmt->execute(); всегда возвращает true наверное потому что запрос выполнен

но как сделать проверку удачно ли прошел запрос или запрос прошел но неудачно так как условие where не нашло нужное значение
Спасибо

Итог, как сделал:
if($c->stmt->rowCount() > 0){
        echo "Ok";
    }else{
        echo"No";
    }
Konstantin
06 октября 2015, 08:24
modx.pro
2
1 722
0

Комментарии: 6

Konstantin
06 октября 2015, 11:30
0
Так?

if($c->stmt && $c->stmt->execute()){
    $result = ...
}
    Konstantin
    06 октября 2015, 11:34
    0
    не прокатило
      Сергей Шлоков
      06 октября 2015, 12:11
      0
      Не прокатило что? Объект не обновился или нет объекта с таким id?
      Проверка на ошибки именно такая
      if($c->prepare() && $c->stmt->execute()){
          $result = ...
      }
      А есть ли такой объект можно проверить так
      if ($modx->getCount('Objekt', $c) {
        // есть
      }
        Konstantin
        06 октября 2015, 12:19
        0
        строки в базе нет с таким id а он делает запрос и возвращает якобы true)))

        Это если так делать:
        if($c->stmt && $c->stmt->execute()){
            $result = ...
        }
          Сергей Шлоков
          06 октября 2015, 12:29
          0
          Можно через PDO сделать
          $c = $modx->newQuery('Objekt');
              $c->command('update');
              $c->set(array(
                  'name'  => $name
                  ));
              $c->where(array(
                  'id'    => $id,    
              ));
              $c->prepare();
              $sql = $c->toSql();
             // sql можно составить и вручную 
             // sql = "UPDATE $modx->getTableName('objekt') SET `name` = {$name} WHERE `id` = {$id}";
              if ($count = $modx->exec($sql)) {
              //  Обновлено $count строк
              }
          Konstantin
          06 октября 2015, 12:30
          1
          0
          Спасибо, на каком то сайте нашел функцию хорошую, получилось так:

          if($c->stmt->rowCount() > 0){
                  echo "Ok";
              }else{
                  echo"No";
              }
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      6