Я думаю, много уже кто выполнял SQL-запросы через modx−>newQuery(),−>prepare(),−>execute();Нодалеконевсезнают,чтотакимобразомможновыполнятьнетолькоSELECT−запросы,ноиUPDATEиDELETE.ДляэтогосуществуютметодыxPDOQuery::command()иxPDOQuery::set().МетодxPDOQuery::command()поумолчаниюустанавливаеттипзапросаSELECT,нокаквидите,можетидругиетипыустанавливать.Приведунебольшойпримерзапроса:КонечныйSQL−запросэтогоскрипта:Каквидите,унасздесьиусловияпоиска,иустановкановыхзначенийесть.Самособойможноиболеесложныезапросынабросать.Второйвопрос—отладкатакихзапросов.Ведьпривыполнениитакихзапросовприошибкахнауровнебазыданныхвыпростоничегонеувидите.Здесьтребуютсядополнительныедвижения.Впервуюочередьнадоучесть,чтопривыполненииметодаc->prepare() мы получаем объект PDOStatement (как результат выполнения метода xPDO::prepare()) Соответственно и работать надо именно с этим объектом и на уровне его методов. (собственно, это и происходит, когда мы выполняем c−>stmt−>execute(),c->stmt->fetchAll() и т.п.). И для вывода ошибок нам и нужно работать с этим объектом. К примеру, чтобы получить информацию о возникших SQL-ошибках, можно выполнить print_r($c->stmt->errorInfo());