2013-12-07 11 views
0

저는 PHP를 처음 사용하고 pdo crud 클래스에서 작업합니다. 내 삽입 기능 자체가 작동하지만 삽입 및 업데이트를위한 하나의 기능을 갖기 위해 노력하고 있습니다. 내가 조사하고 당신이 이것을하기 위해 이중화 키 업데이트를 사용할 수 있다는 것을 알았지 만, 그것을 제 함수에 추가하면 작동하지 않습니다.공용 함수에서 이중화 키 업데이트가 작동하지 않습니다. PHP가 작동하지 않습니다.

내 원래 INSERT가 작동합니다.

include('Crud_class.php'); 
if(isset($_REQUEST['submit'])){ 
    $obj=new Crud("localhost","root","password","dbname"); 
extract($_REQUEST); 
$obj->insert($product_name,$color,$description,$used_for); 
을 :

//INSERT 
public function insert($product_name,$color,$description,$used_for){ 
    $query="INSERT INTO makeup SET product_name='$product_name', color='$color', description='$description', used_for='$used_for'"; 
    $result= $this->mysqli->query($query) or die(mysqli_connect_errno()."product cannot inserted"); 

    if($result){ 
     header('location:read.php');  
    } 
} 

여기에이 항목은 단순히 업데이트하거나

//INSERT and UPDATE 
public function insert($product_name,$color,$description,$used_for){ 
    $query="INSERT INTO makeup SET product_name='$product_name', color='$color', description='$description', used_for='$used_for' 
    ON DUPLICATE KEY UPDATE makeup SET product_name='$product_name', color='$color', description='$description', used_for='$used_for'"; 
    $result= $this->mysqli->query($query) or die(mysqli_connect_errno()."product cannot inserted"); 

    if($result){ 
     header('location:read.php');  
    } 
} 

를 삽입하고 사용하여 호출되지 않는 DUPLICATE KEY UPDATE (작동하지 않는) 오류 메시지에 대해 추가로 하나입니다

}

+0

을 사용하여이 DUPLICATE하지? 오류 메시지가 있습니까? – Mike

+0

원래 구문 오류가있어서 작동하지 않을 수 있습니다. – Mike

+0

원본 코드가 아닌 코드 복사에 여기에서 오류가 발생했습니다 – meztli

답변

1

구문 오류가 있습니다. 더 ON KEY UPDATE TABLENAME 세트가 대신 무엇을 작동하지 않습니다

INSERT INTO makeup SET product_name='$product_name', color='$color', description='$description', used_for='$used_for' 
    ON DUPLICATE KEY UPDATE product_name='$product_name', color='$color', description='$description', used_for='$used_for' 
+0

일 것입니다. public function insert ($ product_name, $ color, $ description , $ used_for) { \t \t $ query = "INSERT INTO 메이크업 SET product_name = '$ product_name', description = '$ description', used_for = '$ used_for' 이중 키 업데이트시 product_name = '$ product_name', color = '$ color', description = '$ description', used_for = '$ used_for' "; \t \t $ result = $ this-> mysqli-> query ($ query) 또는 die (mysqli_connect_errno(). "제품을 삽입 할 수 없습니다"); \t \t \t 경우 ($ 결과) { \t \t \t 헤더 ('위치 : read.php'); \t \t \t} \t} 그러나 삽입 부분 만 작동합니다. S – meztli

관련 문제