gpt4 book ai didi

PHP - Codeigniter 在插入数据库时​​删除破折号和括号

转载 作者:行者123 更新时间:2023-11-30 01:22:07 27 4
gpt4 key购买 nike

所以我尝试在某种程度上对此进行调试,但我不知道为什么会发生这种情况。因此,在从 Excel 文件中检索信息后,我尝试数据库,在大多数情况下,这是可行的,但有两个异常(exception)让我很困难。首先是零件号。在 db 和第二个括号中插入(例如:sxrv-11 变为 sxrv11)时,带“-”的符号会被删除(例如:(pv) 转换为 1,因此 (pv)tr55x 将变为 1tr55x)

这是数组的 var_dump 示例:

array(20) {
["stock_no"]=>
float(127)
["part_no"]=>
string(9) "SIFR6A-11"
["pop_code"]=>
string(3) "D-N"
["jobber"]=>
float(15.2)
["sell_out"]=>
string(0) ""
["suggested_qty"]=>
float(4)
["box_qty"]=>
string(1) "1"
["case_qty"]=>
float(120)
["description"]=>
string(50) "LASER IRIDIUM SPARK PLUG / BOUGIE IRIDIUM AU LASER"
["individual_upc"]=>
string(12) "087295101278"
["box_upc"]=>
string(12) "087295001271"
["case_upc"]=>
string(14) "10087295001278"
["part_status"]=>
string(0) ""
["product_desc"]=>
string(0) ""
["box_size"]=>
string(0) ""
["fk_id_brand"]=>
int(1)
["fk_id_category"]=>
string(1) "1"
["fk_id_subcategory"]=>
string(1) "5"
["description_en"]=>
string(24) "laser iridium spark plug"
["description_fr"]=>
string(23) "bougie iridium au laser"
}

这是使用该数据数组进行插入的插入函数:

public function insert_product($product)
{
echo "<pre>";
var_dump($product);
echo "</pre>";
$this->db->set('fk_id_category', $product['fk_id_category']);
$this->db->set('fk_id_subcategory', $product['fk_id_subcategory']);
$this->db->set('fk_id_brand', $product['fk_id_brand']);
$this->db->set('stock_no', $product['stock_no']);
$this->db->set('part_no', $product['part_no']);
$this->db->set('pop_code', $product['pop_code']);
$this->db->set('jobber', $product['jobber']);
$this->db->set('part_status', $product['part_status']);
$this->db->set('sell_out', $product['sell_out']);
$this->db->set('suggested_qty', $product['suggested_qty']);
$this->db->set('box_qty', $product['box_qty']);
$this->db->set('case_qty', $product['case_qty']);
$this->db->set('description_en', $product['description_en']);
$this->db->set('description_fr', $product['description_fr']);
$this->db->set('product_desc', $product['product_desc']);
$this->db->set('box_size', $product['box_size']);
$this->db->set('individual_upc', $product['individual_upc']);
$this->db->set('box_upc', $product['box_upc']);
$this->db->set('case_upc', $product['case_upc']);
$this->db->insert('product');
}

一旦进入数据库,它就会被修改为前面描述的示例。我尝试了不同的 mysql 排序规则,但它没有改变任何东西。

最奇怪的部分是“pop_code”在插入数据库时​​保留“-”。它们分别是 varchar() 20 和 5。

我不知道这是 PHP 问题、codeigniter 问题、mysql 问题还是 phpmyadmin 问题。有人知道吗?

最佳答案

Codeigniter active record insert set() 函数还将接受可选的第三个参数 ($escape),如果设置为 FALSE,它将防止数据被转义。为了说明区别,这里使用带转义参数和不带转义参数的 set()。

试试这个:$this->db->set('part_no', $product['part_no'], FALSE);

关于PHP - Codeigniter 在插入数据库时​​删除破折号和括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18422129/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com