2013-04-17 43 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