Я создал класс, который расширяет функциональность PDO
для взаимодействия с базой данных. До сих пор все не работает достаточно хорошо, но я не в состоянии выполнить update
заявления ниже запрос:PDO не находит столбец
$result = $this->db->update('table1', $postData['parameters'], "code = {$postData['code']}");
массива postData
есть это содержание:
$postData = array(
"code" => "T941",
"parameters" => array("description" => "Testing")
);
update
метод имеющегося в моем db
класс, который расширяет PDO
функции, заключается в следующем:
public function update($table, $data, $where)
{
ksort($data);
$fieldDetails = NULL;
foreach($data as $key => $value)
{
$fieldDetails .= "`$key`=:$key,";
}
$fieldDetails = rtrim($fieldDetails, ",");
$sth = $this->prepare("UPDATE $table SET $fieldDetails WHERE $where");
foreach($data as $key => $value)
{
$sth->bindValue(":$key", $value);
}
return $sth->execute();
}
это мне ThOD всегда работал, но теперь я получаю эту ошибку:
Column not found: 1054 Unknown column 'T941' in 'where clause'
Теперь я пытался сбросить содержание update
вроде этого:
1. echo $table;
2. var_dump($data);
3. echo $where;
и я получаю:
1. table1
2. array(2) {
["code"]=>
string(4) "T941"
["description"]=>
string(4) "Test"
}
3. code = T941
Проблема заключается в том, что метод update
не имеет доступа к имени столбца, а по значению! Я действительно не знаю, почему, в других классах я использую его таким же образом и хорошо работаю.
Это table1
структура:
| code | description | lastUpdated |
, что happean?
'$ fieldDetails. =" '$ Key' =: $ key,"; 'должно быть' $ fieldDetails. = "$ Key =: $ key,"; ' –
@Anant, и если мне нужно есть столбец с именем по умолчанию, занятым? Должен ли я добавлять кавычки, поэтому мне нужно использовать его на моем пути. Также я получаю ту же ошибку с вашим намеком. – Dillinger