2013-04-17 40 views
1

以下代碼能夠從數據庫中刪除行,但無法插入。這是爲什麼?

<?php 

    mysql_connect("localhost","formuser","password") or die(mysql_error()); 
    mysql_select_db("formpractice") or die(mysql_error()); 


    $name = $_POST['name']; 
    $address = $_POST['address']; 

    // Add into DB Query 
    $insert = "INSERT INTO Users(name, address) VALUES ('$name', '$address')"; 
    $insert_result = mysql_query($insert); 

    // Delete from DB Query 
    $delete = "DELETE FROM Users WHERE name = '$name' OR address = '$address'"; 
    $delete_result = mysql_query($delete); 

    if(isset($_REQUEST['submit'])) { 
     if ($insert_result) { 
      echo "Success"; 
     } else { 
      echo "Failed to submit"; 
     } 
     echo 'Submit Request'; 

    } else if (isset($_REQUEST['delete'])) { 
     if ($delete_result) { 
      echo "Deleted"; 
     } else { 
      echo "Failed to submit"; 
     } 
    } 


?> 
+3

您刪除記錄您插入笑 – Sam

+0

你是如何加載此PHP代碼? HTML表單?捲曲? AJAX? –

+0

你知道'mysql_query'運行查詢,對吧? –

回答

1

試試這個:

mysql_connect("localhost","formuser","password") or die(mysql_error()); 
mysql_select_db("formpractice") or die(mysql_error()); 

$name = $_POST['name']; 
$address = $_POST['address']; 

if(isset($_REQUEST['submit'])) { 
    // Add into DB Query 
    $insert = "INSERT INTO Users(name, address) VALUES ('$name', '$address')"; 
    $insert_result = mysql_query($insert); 
    if ($insert_result) { 
     echo "Success"; 
    } else { 
     echo "Failed to submit"; 
    } 
    echo 'Submit Request'; 

} else if (isset($_REQUEST['delete'])) { 
    // Delete from DB Query 
    $delete = "DELETE FROM Users WHERE name = '$name' OR address = '$address'"; 
    $delete_result = mysql_query($delete); 
    if ($delete_result) { 
     echo "Deleted"; 
    } else { 
     echo "Failed to submit"; 
    } 
} 
+0

謝謝!這正是我在得知查詢立即被調用後所嘗試的。你會對我如何編碼這個問題有任何建議嗎? – iggy2012

+2

是的,1)使用pdo代替2)使插入和刪除功能,3)把你的數據庫配置和加載到一個單獨的文件/對象4)不要直接使用像$ _REQUEST這樣的全局變量,除非頁面保持這個簡單永遠5)不要將回顯(查看)代碼與你的邏輯混合在一起。將錯誤,消息等保存到變量中,然後再將它們回顯出來。 – Zak

+0

謝謝@Zak! – iggy2012