나는 다음과 같은 열이 테이블 content
에 데이터베이스에 페이지의 콘텐츠의 조각을 삽입 할 MySqli을 사용하고있는 모든 데이터를 삽입하는 데 실패 콘텐츠의 유형은 TEXT
입니다. 그러나 삽입 문을 실행할 때 테이블에 새 항목을 삽입하지만 name
및 order
값을 올바르게 삽입하는 동안 content
및 parent
값을 삽입하지 않는 것이 문제입니다. 모든 준비 함수의 반환 값을 확인하고 모두 true를 반환하거나 아무런 오류도주지 않아서 무슨 일이 일어나고 있는지 혼란 스러워요.삽입이 제대로
클래스 속성 ($this->Content
및 $this->Parent
)이 채워져 있고 적절한 데이터가 들어 있습니다. 또한 업데이트/edit
함수의 일부는 잘 작동합니다 (이 두 부분의 준비된 기능이 정확히 동일하므로 이상한 오류 임).
이것은 쿼리를 수행하는 코드입니다. $type
변수는 edit
또는 new
의 두 값을 취할 수 있으며 new
값이 올바로 작동하지 않는 경우
public function Save($type)
{
if($type == "edit")
{
$query = "UPDATE `content` SET `name` = ?, `content` = ?, `parent` = ? WHERE `id` = ?";
$stmt = $this->sql->prepare($query);
$stmt->bind_param("ssii", $this->Name, $this->Content, $this->Parent, $this->ID);
}
else if ($type == "new")
{
$query = "INSERT INTO `content`(`name`, `parent`, `content`, `order`) VALUES(?, ?, ?, 999)";
$stmt = $this->sql->prepare($query);
$stmt->bind_param("ssi", $this->Name, $this->Content, $this->Parent);
}
if(!$stmt->Execute())
echo "Failed saving content-object with ID $this->ID" . mysqli_error($this->sql);
$stmt->close();
}
은 내가 edit
부분이 완벽하게 잘 작동 왜 아무 생각이 없지만, new
부분은하지 않습니다. 쿼리는 올바른 이름과 순서 값을 가진 새로운 행을 삽입하므로, bind_param
함수와 관련이 있습니다. 데이터베이스의 행은 항상 및 parent
에 대해 0
값을 갖습니다.
맨 먼저 : http://stackoverflow.com/a/22662582/285587 –
@YourCommonSense : MysqlI 개체를 만들기 전에 추가되었습니다. 삽입 후에도 오류가 표시되지 않았습니다. –
@JoeyDewd 새 콘텐츠를 삽입 할 때 바인딩 및 값 순서가 잘못되었습니다. –