このコードは今、私にいくつかの問題を与えています。何らかの理由で、チェックボックスをオンにしてサブミットすると、UPDATEをスキップしてINSERTにまっすぐ進んで、ただ更新する必要があるときに別のエントリを作成します。UPDATEが失敗した場合に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インジェクション攻撃]の危険にさらされています。(0120-18753) 、その安全ではありません!](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 ELSEが属しているIFを知っていますか? OUTER IFまたはINNER IF? – RiggsFolly