這段代碼現在給我一些問題。出於某種原因,當您使用複選框進行提交時,它將跳過UPDATE並直接進入INSERT,在應該更新時創建另一個條目。如果更新失敗,我應該如何處理INSERT
有沒有更好的方法來處理這種情況下,如果你想INSERT,如果條目不存在?
if(isset($_POST['R_domain'])){
$_reseller="20217";
$_DOMAIN=$_POST['R_domain'];
$_COMPANY_NAME=$_POST['company_name'];
$_COMPANY_EMAILS=$_POST['company_email'];
$_PHONE_NUMBER=$_POST['phone_number'];
$_ADDRESS=$_POST['street_address'];
$_CITY=$_POST['city'];
$_STATE=$_POST['state'];
$_ZIPCODE=$_POST['zipcode'];
if(isset($_POST['hmbill'])) {
$_HMBill = "1";
}
else if(!isset($_POST['hmbill'])) {
$_HMBill = "0";
}
$_DEPT="NA";
$conn = mysqli_connect("", "", "", "");
$_sql_update="UPDATE company SET DOMAIN='$_DOMAIN', COMPANY_NAME='$_COMPANY_NAME', COMPANY_EMAILS='$_COMPANY_EMAILS', PHONE_NUMBER='$_PHONE_NUMBER', ADDRESS='$_ADDRESS', CITY='$_CITY', ZIPCODE='$_ZIPCODE',STATE='$_STATE',DEPT='$_DEPT',HMBILL='$_HMBill' WHERE `DOMAIN` = '$_DOMAIN'";
mysqli_query($conn, $_sql_update);
if(mysqli_affected_rows($conn)>0){}
else {
$_sql_insert = "INSERT INTO `company` (ID,RID,DOMAIN,COMPANY_NAME,COMPANY_EMAILS,PHONE_NUMBER,ADDRESS,CITY,ZIPCODE,STATE,DEPT,HMBILL) VALUES('','$_reseller','$_DOMAIN','$_COMPANY_NAME','$_COMPANY_EMAILS','$_PHONE_NUMBER','$_ADDRESS','$_CITY','$_ZIPCODE','$_STATE','$_DEPT','$_HMBill')";
mysqli_query($conn, $_sql_insert);
}
你在哪裏檢查複選框的條件? –
您的腳本處於[SQL注入攻擊]風險中(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) 甚至 [如果您正在轉義輸入,它不安全!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) 使用[編寫參數化語句](http:// php .net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly
任何人都知道IF IFSE屬於哪個IF?外部中頻或內部中頻? – RiggsFolly