Codeigniter和mariadb缺少一行
我从HANA DB中选择了2k数据并将其插入到mariadb 10.1.19中,但我一直缺少一行(不是第一行或最后一行) 这是我的密码Codeigniter和mariadb缺少一行,mariadb,codeigniter-3,php-7,hana,Mariadb,Codeigniter 3,Php 7,Hana,我从HANA DB中选择了2k数据并将其插入到mariadb 10.1.19中,但我一直缺少一行(不是第一行或最后一行) 这是我的密码 function sync_supplier($user = null){ ignore_user_abort(true); set_time_limit(0); $this->db->truncate('suppliers'); $dbjpa = $this->load->database('jpa'
function sync_supplier($user = null){
ignore_user_abort(true);
set_time_limit(0);
$this->db->truncate('suppliers');
$dbjpa = $this->load->database('jpa',TRUE);
$field = '"CardCode","CardName","CardType","GroupCode","Phone1","CntctPrsn","City","E_Mail"';
$where = "'Y'";
$result = $dbjpa->query('SELECT '.$field.' FROM JAVAPRIMA_ADI."OCRD" WHERE "frozenFor" != '.$where);
$resultSupplier = $result->result_array();
$count = 0;
foreach($resultSupplier as $supplier) {
$data = array(
'CardCode'=> $supplier['CardCode'],
'CardName'=> $supplier['CardName'],
'CardType'=> $supplier['CardType'],
'GroupCode'=> $supplier['GroupCode'],
'Phone1'=> $supplier['Phone1'],
'CntctPrsn'=> $supplier['CntctPrsn'],
'City'=> $supplier['City'],
'E_Mail'=> $supplier['E_Mail']
);
$this->db->insert('suppliers',$data);
$count++;
}
if ($result->num_rows() > 0){
echo "num_rows : ".$result->num_rows();
echo "<br>count : $count";
return true;
}
else {
return false;
}
}
这是phpmyadmin计数
这是哈娜的计数
有人能告诉我这里发生了什么事吗?这是一个不幸的供应商,很可能无法收回他的钱…作为一种快速调试方法。。。您的某一行可能导致了问题,并且没有被插入 要快速测试这种情况,您可以在插入上执行测试。。。插入的结果返回True或False。所以你可以试着与之合作 替换
$this->db->insert('suppliers',$data);
$count++;
与
$count++;
如果(!$this->db->insert('suppliers',$data)){
echo“在count=$count时插入失败
”;
//使用变量转储或打印来代替上述回显
//或者为了好玩而同时使用,但是var_转储更有用!
var_dump($data);//这可能更有用
}
这只是检查插入的结果并采取一些操作。你甚至可以放一个出口();在这里只是为了找到冒犯的一行,如果有的话
是的,还有其他方法可以做到这一点,但这会告诉你“可能”出了什么问题
您还可以实现其他一些功能,但这是一个快速的“仅调试检查”,只是为了让您了解可能出现的问题。执行一条语句时需要大量代码
插入供应商选择*FROM ocrd代码> > RikJead,在不同的服务器上是不同的DB(MiRADB& SAP HANA),然后考虑MILADB连接或联邦X。谢谢这个TimBurnL..我找到了导致问题的原因。我很高兴它有帮助:)
$this->db->insert('suppliers',$data);
$count++;
$count++;
if(! $this->db->insert('suppliers',$data)) {
echo "The insert failed at count = $count <br>";
// instead of the above echo use the var_dump or print_r
// or use both for fun, but the var_dump is more useful!
var_dump($data); // This is probably more useful
}