Я сделал метод запроса для своего класса, и он работает с получением данных из БД, но он не работает, когда я начинаю вставлять что-то.Как я могу повторно использовать мой метод запроса для вставки и извлечения данных из базы данных в PHP?
Мой метод запроса - это.
function query($sql, $params = array()) {
$query = $this->_conn->prepare($sql);
if(count($params)) {
$position = 1;
foreach($params as $param) {
$query->bindValue($position, $param);
$position++;
}
}
if($query->execute()) { //error is here based on the error message: SQLSTATE[42000]
$result = $query->fetchAll(PDO::FETCH_ASSOC);
} else {
return false;
}
return $result;
}
И когда я вызываю запрос выше, у него была ошибка.
function insert($table, $data) {
if(count($data)) {
$keys = array_keys($data);
$values = "";
$counter =1;
foreach($data as $field) {
$values .= "?";
if($counter < count($field)) {
$values .= ", ";
}
$counter++;
}
$sql = "INSERT INTO {$table} (`". implode('`, `',$keys) ."`) VALUES {$values}";
if($this->query($sql, $data)) { //calling the method above
return true;
}
}
return false;
}
I think the error is in the query method and it only works fetching data. How can I make it flexible(like both working on fetching and insert etc. data)?
UPDATE/INSERT заявление не возвращает набор результатов, только статус TRUE (т.е. он работал) FALSE (она не работал) – RiggsFolly
PS: В будущем, пожалуйста, покажите нам сообщение об ошибке ПОЛНОГО – RiggsFolly
@RiggsFolly Фатальной ошибку: неперехваченное исключения «PDOException» с сообщением «SQLSTATE [42000]: ошибка синтаксиса или нарушение доступа: 1064 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '???' в строке 1 'в C: \ wamp64 \ www \ security \ db.php в строке 30 ** ошибка в методе query() в элементе $ query-> execute() –