我建议你做所有使用PHP的处理。
当你通过你的客户记录循环,如果记录存在,首先检查:
$query = "SELECT customer_account_number FROM table WHERE customer_account_number = 1234";
$result= $mysql -> query($query);
$num = $result -> num_rows;
if($num == 1){
// The record already exists so you update.
$update_query = "UPDATE table SET some_field = 'Some Value' WHERE customer_account_number = 1234";
$update_result= $mysqli -> query($update_query);
}else{
// The record doesn't exist so create a record.
$insert_query = "INSERT INTO table (customer_account_number) VALUES (1234)";
$insert_result= $mysqli -> query($insert_query);
}
或者,你可以做一个选择查询,以获得客户的账号和数组中的弹出他们。
$query = "SELECT customer_account_number FROM table";
$result= $mysql -> query($query);
$num = $result -> num_rows;
while($row = $result -> fetch_array(MYSQLI_ASSOC)){
$cust_records[] = $row['customer_account_number'];
}
// Then for each customer record your looping through.
if(in_array($customer_record_id, $cust_records)){
// It exists - so just update
$update_query = "UPDATE table SET some_field = 'Some Value' WHERE customer_account_number = 1234";
$update_result= $mysqli -> query($update_query);
}else{
// Doesn't exist - insert
$insert_query = "INSERT INTO table (customer_account_number) VALUES (1234)";
$insert_result= $mysqli -> query($insert_query);
}
此外,由Tadman建议,如果您确保客户账户号是一个唯一列,然后,将增加额外的保护,以确保副本不能添加。
调用'SELECT *'计数真的不是很酷。不要这样做。相反,请直接选择计数。 – tadman
是的 - 这只是一个非常快速的例子。我会更新。 – ajtrichards
计数总是返回一行。 – tadman