我有一个问题,就是将数据文本从一个表动态插入到另一个表中,该表可以有一个引号(')。
我的案例中无法使用链接here和here,因为数据是动态的(来自表格)。
这是我在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
数据可以有单引号('),当它发生时,它不会插入表trans_temp
,因为INSERT
代码有单引号('$row[prod_name]'
)。
例:INSERT INTO trans_temp (name, price) VALUES ('ICE BON BON 5'S 80GR (1C=24)','130')
有人能帮助我吗?谢谢你的回答。
答案 0 :(得分: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') ");
}