我建議你做所有使用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