2013-12-07 27 views
0

我是新來的PHP和pdo crud類的工作。我的插入功能本身的作品,但我想有一個插入和更新功能。我研究並發現你可以使用ON DUPLICATE KEY UPDATE來做到這一點,但是當我將它添加到我的函數中時,它不起作用。關於公共函數php中的DUPLICATE KEY UPDATE不工作

這是我的原始INSERT工作;

//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');  
    } 
} 

,通過使用叫做:

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); 

}

+0

什麼不起作用?有沒有錯誤信息? – Mike

+0

你也有一個原始的語法錯誤,所以沒有辦法可能工作。 – Mike

+0

語法錯誤更正發生在複製代碼這裏沒有在原代碼 – meztli

回答

1

存在語法錯誤。有沒有上的重複密鑰更新表名SET改用

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 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'「; \t \t $ result = $ this-> mysqli-> query($ query)or die(mysqli_connect_errno()。「product can not inserted」); \t \t 如果\t($結果){ \t \t \t頭( '位置:read.php'); \t \t \t} \t}但只有插入部分工作:S – meztli

相關問題