내 값을 업데이트하려고하면 다음 오류가 발생합니다. SQLSTATE [HY093] : 잘못된 매개 변수 번호 : 매개 변수가 정의되지 않았습니다. 예 : (hello)와 같이 특수 문자가있는 경우에만 사용 () 특수 문자로 값을 찾을 수없고 을 삽입하고 데이터베이스에서 업데이트하거나 제거 할 수 없습니다 .pdo의 특수 문자
그리고 데이터베이스는 이미 utf8에 설정되어 있습니다.
public function update($data, $key, $value) {
try {
$this->query = 'UPDATE ' . $this->table . ' SET ';
array_walk($data, function($index, $key) {
$this->query .= $key . ' = ' . ':' . $key . ', ';
});
$this->query = rtrim($this->query, " ,");
$this->query .= " WHERE $key = :$value";
$stmt = $this->db->prepare($this->query);
$stmt->execute(array_merge($data, array($value => $value)));
return true;
} catch(PDOException $e) {
echo $e->getMessage();
}
}
예 나는 그것을 사용하는 방법 :
배열 업데이트 할 수있는 키와 새로운 가치를 부여하는 것입니다if(isset($oldValue, $newValue)) {
$data['database']->update(array("name" => $newValue), "name", $oldValue);
}
쉼표 테이블 '이름'의 값을 검색 후 .
누군가이 솔루션을 알고 있다면 나는 매우 행복 할 것입니다. 미리 감사드립니다.
'update '를 어떻게 호출하는지 예를 들려 줄 수 있습니까? – icktoofay
': $ value'에서'$ '기호를 제거해야합니다. 또한 말하기는 어렵지만'key'라는 단어를 사용하면'-key'는 MySQL 예약어입니다. * 통찰력. * –
@icktoofay 위의 게시물을 참조하십시오. 내가 편집했습니다. – user3139504