2010-02-10 5 views
0

나는 테이블에 레코드를 삽입하는 방법은 다음과 같습니다 것처럼 : SQL 구문이 올바른지삽입 기록 MySQL의

public static function AddCategory($categoryName) 
    { 
     $sql = 'INSERT INTO category(name) 
       VALUES(' . $category_name .')'; 
     $parameters = array('category_name' => $categoryName); 
     return DB::Execute($sql,$parameters); 
    } 

사람은 말해 줄 수 있습니까? 임을 삽입 할 수 없습니다. 내 실수를 찾을 수 없습니다. 이 라인은 중복 내 간단한 관찰에서 감사

답변

1
public static function AddCategory($categoryName) { 
    $sql = 'INSERT INTO category (name) 
      VALUES (:category_name)'; 
    $parameters = array('category_name' => $categoryName); 
    return DB::Execute($sql,$parameters); 
} 
+0

감사합니다. 그것은 실제로 일했다!! :) – chupinette

0

는 :

$parameters = array('category_name' => $categoryName); 

는 이미 쿼리 자체 내부에 삽입 된 값을 지정했습니다. 지금 실행하면됩니다.

0

내가 정확히 당신이 원하는 무엇을 이해하지 못하고, 유효한 SQL 삽입 sintax은 다음 표 1의 VALUES (값 1, 값 2, ...)

그래서 내가 생각 INTO

INSERT 귀하의 코드는 다음과 같이 변경되어야합니다 :

public static function AddCategory($categoryName) 
    { 
     //I don't know the real name of the TABLE you want to update, so you have to replace CATEGORIES_TABLE with your table name 
     $sql = 'INSERT INTO CATEGORIES_TABLE VALUES(' . $categoryName .')'; 
     return DB::Execute($sql);  
    } 

DB :: Execute가 무엇인지 모르겠지만 쿼리를 실행한다고 가정합니다. 이를 테스트 할 수있는 좋은 방법 참고

쿼리를 exectuing 전에 다음 줄을 추가하는 것입니다 그리고

echo "<br>" . $sql . "</br>"; 

당신이 PHP에 의해 인쇄 된 결과를 가지고 MySQL의 쿼리 브라우저에서 실행, 그것은 더 당신을 말할 것이다 쿼리가 실패한 이유에 대한 정확한 정보.

+0

고마워요! 나는 그것을 시도하려고 .. – chupinette