2014-12-01 58 views
0

我想使用簡單的表單向數據庫添加註釋。無論出於何種原因,當我使用表單時,我似乎無法獲得表格更新。我沒有收到任何錯誤,只是之後刷新表時沒有任何反應。換句話說,即使在提交表格之後,該表格仍然有0個條目。這裏是我的代碼:MySQL的PHP​​表格插入值的表格?

<?php 
session_start(); 
$connection = mysql_connect("server", "username", "password"); 
if ($connection->connect_error) { 
    die('Connect Error: ' . $connection->connect_error); 
} 
// Selecting Database 
mysql_select_db("database", $connection) or die(mysql_error()); 

$name = $_POST['name']; 
$title = $_POST['title']; 
$comments = $_POST['comments']; 

$sql = "INSERT INTO comments (Name, Title, Comments) 
VALUES ('$name', '$title', '$comments')"; 

mysql_close($connection); // Closing Connection 

?> 

謝謝你的幫助!

+2

您實際上並未執行查詢。 – 2014-12-01 18:21:34

+0

我不敢相信我錯過了。非常感謝! – user3533863 2014-12-01 18:26:50

回答

4

你永遠不實際執行查詢:

$sql = "INSERT INTO comments (Name, Title, Comments) 
VALUES ('$name', '$title', '$comments')"; 
$result = mysql_query($sql); 

其他的事情:

  1. if ($connection->connect_error) {無效。您不能以OOP方式使用舊的mysql API。你需要使用mysqli

  2. Please, don't use mysql_* functions in new code。他們不再維護and are officially deprecated。查看red box?請改爲了解prepared statements,並使用PDOMySQLi - this article將幫助您決定哪個。如果您選擇PDO,here is a good tutorial

  3. 你也來SQL injections

  4. 敞開你做沒有錯誤檢查。如果你不尋找它們,你期望知道是否有問題?

+0

謝謝你的回覆,我不能相信我錯過了!我非常感謝你的其他反饋。說實話,在我進行表單驗證和錯誤檢查之前,我更感興趣的是讓它工作。我仍然在努力學習SQL,所以我一直專注於「mysql」,但如果前者現在已經過時,我會深入研究「mysqli」。我真誠地感謝您的幫助! – user3533863 2014-12-01 18:31:17

+0

*「您不需要曾經實際執行過你的查詢:「* - 啊,緊緊的;) – 2014-12-01 21:43:11

0

(注:請在您的服務器信息更改服務器,用戶名和密碼),您可以使用mysql_real_escape_string功能限制輸入字段

<?php 
    session_start(); 
    $connection = mysql_connect("server","username","password"); 
    if (!$connection) { 
     die('Connect Error: ' . mysql_error()); 
    } 
    // Selecting Database 
    mysql_select_db("database",$connection) or die(mysql_error()); 

    $name = $_POST['name']; 
    $title = $_POST['title']; 
    $comments = $_POST['comments']; 

    $sql = "INSERT INTO comments (Name,Title,Comments) 
    VALUES ('$name', '$title', '$comments')"; 

    mysql_query($sql); 
    mysql_close($connection); // Closing Connection 

    ?> 

爲了安全(防止SQL注入防禦)。例如:

$name = mysql_real_escape_string($_POST['name']); 
$title = mysql_real_escape_string($_POST['title']); 
$comments = mysql_real_escape_string($_POST['comments']);