// 'modx_table_name', array('row1' => 1, 'row2' =>2)
function _INSERT($table, $data){
$keys = array_keys($data);
$fields = '`' . implode('`,`', $keys) . '`';
$placeholders = substr(str_repeat('?,', count($keys)), 0, -1);
$sql = "INSERT INTO {$table} ({$fields}) VALUES ({$placeholders});";
$stmt = $this->modx->prepare($sql);
if (!$stmt->execute(array_values($data))) {
$this->modx->log(1, print_r($stmt->errorInfo(), true) . ' SQL: ' . $sql);
}
}
// 'modx_table_name', array('row1' => 1, 'row2' => 2), 'id', 1
function _UPDATE($table, $data, $key, $val){
if(!$key || !$val) return false;
$placeholders = array();
foreach(array_keys($data) as $k) $placeholders[] = "`{$k}` =?";
$placeholders = implode(', ', $placeholders);
$data = array_values($data);
array_push($data,$val);
$sql = "UPDATE {$table} SET {$placeholders} WHERE `{$key}` =?;";
$stmt = $this->modx->prepare($sql);
if (!$stmt->execute(array_values($data))) {
$this->modx->log(1, print_r($stmt->errorInfo(), true) . ' SQL: ' . $sql);
}
}Запросы INSERT и UPDATE на PDO
06 декабря 2016, 08:10
Объектная
UPDATE {$table} SET {$placeholders} WHERE `{$key}` =?; <-вотОна тут точно не лишняя? Убрал кавычки, чтобы было понятнее.заменил на
PHP выдает предупреждение PHP notice: Undefined variable: modx,
и затем
Вывел вардамп $sql-
Что я делаю не так?
Решилось заменой
на