2016-12-28 3 views
1

あるテーブルから別のテーブルにデータテキストを動的に挿入するときに問題があります。これは一重引用符( ')を使用できます。PostgreSQLで一重引用符で動的にテキストを挿入

データがテーブルから動的なので、herehereは私のケースでは使用できません。ここで

は、PHPでの私のコードです:

... 
//select from master table with some condition inputted by user 
$sql = "SELECT prod_name, prod_price FROM master_prod WHERE cat_prod ='$category'"; 

//get all data and insert to another table 
$rs5 = $db->GetAll($sql); 
foreach ($rs5 as $row) { 
    $rs = $db->Execute("INSERT INTO trans_temp (name, price) VALUES ('$row[prod_name]','$row[prod_price ]') "); 
} 
... 

私の問題はprod_nameデータが単一引用符( ')を持つことができる、であり、それが発生したときにINSERTコードを持っているので、それはテーブルtrans_tempに挿入されません。一重引用符('$row[prod_name]')。

例:INSERT INTO trans_temp (name, price) VALUES ('ICE BON BON 5'S 80GR (1C=24)','130')

誰かが私を助けることができますか?ご回答ありがとうございます。

答えて

1

PDOは、おそらくはるかに優れたソリューションですが、あなたはまた、エスケープ用''を使用することができます。

$rs5 = $db->GetAll($sql); 
foreach ($rs5 as $row) { 
    $t1 = str_replace("'", "''", $row['prod_name']); 
    $t2 = str_replace("'", "''", $row['prod_price']); 
    $rs = $db->Execute("INSERT INTO trans_temp (name, price) VALUES ('$t1','$t2') "); 
} 
+0

はあなたをとても感謝しています。できます。 – joshua14

+0

downvoterコメントがあればいいですね。 – Dekel

関連する問題