if ($_GET['section'] == 'task' && isset($_GET['setstatus']) && isset($_GET['task_id']))
{
if ($_GET['setstatus'] == 1 || $_GET['setstatus'] == 0 && is_numeric($_GET['task_id']))
{
$tsdata = [':status' => $_GET['setstatus'], ':id' => $_GET['task_id']];
$result = $mysql->query("UPDATE `u387857933_user`.`task` SET `tstatus` = :status WHERE `task`.`id` =:id;", $tsdata);
//var_dump($result);
}
}
Ошибка: SQLSTATE[HY000]: General error: 2053
Что не так то ?! Класс mysql:
<?
class Mysql {
private $db;
private $config;
public function __construct(){
try {
$this->config = include __DIR__ .'/config.php';
$this->db = new PDO("mysql:dbname={$this->config['dbname']};host={$this->config['dbhost']}", $this->config['dbuser'], $this->config['dbpassword']);
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch (PDOException $e) {
die('<b>Ошбика при подключении к базе данных</b>: ' . $e->getMessage());
}
}
public function query($sql, $params=[])
{
try {
$sth = $this->db->prepare($sql);
$sth->execute($params);
return $sth->fetchAll(PDO::FETCH_OBJ);
} catch (PDOException $e) {
die('<b>Ошбика при выполнение запроса QUERY</b>: ' . $e->getMessage());
}
}
}
Потому что после Update
нечего выбирать. Там не возвращается массив, а значит на строке $sth->fetchAll
все и ломается.
Если нужно посмотреть статусы исполнения операции Update, то надо возвращать это непосредственно из $sth
$rv = $sth->execute(...
return $rv;
Однако возникнут проблемы с другими запросами. Поэтому, как правило, разделяют методы для разных видов запросов, где для update
не будет никаких $sth->fetchAll
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Только начал изучать phpСоздаю чат
Всем привет, не так давно начал использовать ORM RedBeanPhpИ по итогам двух дней, копания в доках не могу понять как прописать двойное условие для...