2013-12-14 1 views
1

를 삽입 할 때 준비 후 작동하지 실행 : 나는 오류를 얻을PHP-MySQL을 PDO : 나는 줄을 다음 한

$sql = "INSERT INTO news (title, content) VALUES :title, :content"; 
    $pre = $this->prepare($sql); 
    $pre->bindValue(":title", "xxx"); 
    $pre->bindValue(":content", "yyy"); 
    $pre->execute(); 

을하지만, 쿼리는 실행되지 않습니다 (내가 쿼리 로그를 확인).

나는 필사적으로 다음과 같이 변경 시도 :

$t="xxx" and $pre->bindValue(":title", $t); (the same also for y) 
$sql = "INSERT INTO `news` (`title`, `content`) VALUES :title, :content"; 
$sql = "INSERT INTO `news` (`title`, `content`) VALUES ':title', ':content'"; 

아무것도 변경되지 않습니다. 웃기는 일은 아무 반응이없고, 경고도없고, 오류도 없다는 것입니다. 그러나 쿼리가 실행되지 않습니다.

비슷한 게시물을 발견했지만 그 중 누구도 내 문제를 해결하지 못했습니다.

는 (약 $this ... 코드는 PDO 클래스에서 확장하는 클래스입니다.)

+0

['errorInfo()'] (http://www.php.net/manual/en/pdo.errorinfo.php) 메소드를 잊지 마십시오. 그게 당신에게 오류가 있습니까? –

+0

00000을 반환합니다. 그게 무슨 뜻입니까? –

+0

[개발 프레임 워크] (http://codegeekz.com/best-php-frameworks-for-developers/) 또는 [Propel] (http://propelorm.org/)과 같은 ORM을 사용하거나 [Doctrine] (http://www.doctrine-project.org/projects/orm.html)과 같은 것들로 주위를 소란스럽게 할 필요는 없습니다. – tadman

답변

1

시도 : "INSERT INTO news (title, content) VALUES (:title, :content)";

삽입 값을 괄호로 묶어야합니다.

+0

그게 문제를 해결했습니다. –

+0

이 질문자와 질문자 코드의 미묘한 차이점을 설명하면 대답이 조금 나아질 것입니다. –

+0

@ moller1111 답변을 수락 한 것으로 표시 할 수 있습니까? :디 – MillaresRoo

3

이 시도, 당신의 가치는 대신 values()

"INSERT INTO news (title, content) VALUES (:title, :content)"; 

내부에 랩해야

"INSERT INTO news (title, content) VALUES :title, :content";