2014-01-16 123 views
0

我有以下2個文件和一個在後臺運行的數據庫。當我提交表格時。數據未被插入到數據庫中。它連接到我的數據庫成功,但它不插入:數據沒有從表單插入到數據庫中,我做錯了什麼?

update.html

<html> 
<head><title>Test Page</title></head> 
<body> 
<h2>Data Collection</h2><p> 
<form action="update.php" method="post"> 
<table> 
<tr><td>id</td><td><input type="text" name="id" /></td></tr> 
<tr><td>title</td><td><input type="text" name="title" /></td></tr> 
<tr><td>name</td><td><input type="text" name="name" /></td></tr> 
<tr><td>hello</td><td><input type="text" name="hello" /></td></tr> 
<tr><td colspan="2" align="center"><input type="submit" /></td></tr> 
</table> 
</form> 
</body> 
</html> 

update.php

<?php 

    $GLOBALS['title']; 
    $GLOBALS['id']; 
    $GLOBALS['name']; 
    $GLOBALS['hello']; 

    $hostname="localhost:3036"; 
    $username="root"; 
    $password=""; 

    $con = mysql_connect($hostname, $username, $password) 
     or die("Unable to connect to MySQL"); 
    echo "Connected to MySQL<br>"; 

    // Check connection 
    if (mysql_error()) 
     { 
     echo "Failed to connect to MySQL: " . mysql_error(); 
     } 

    mysql_select_db('website'); 


    $sql="INSERT INTO articles (id, title, name, hello) 
     VALUES('$id','$title','$name','$hello')"; 

    mysql_close($con); 

    echo "test"; 

所有幫助表示讚賞。

+4

注意:Mysql函數已被棄用,並可能導致安全問題。改用PDO或mysqli!另外請確保您清理數據庫輸入:) –

+0

談論易受注入攻擊。 – Daedalus

+1

''$ id','$ title','$ name','$ hello''沒有設置 –

回答

0

請試試這個代碼: 注:我不理你不贊成msqyl功能

<?php 

$hostname="localhost:3036"; 
$username="root"; 
$password=""; 

$title = $_POST['title']; 
$id = $_POST['id']; 
$name = $_POST['name']; 
$hello = $_POST['hello']; 

$con = mysql_connect($hostname, $username, $password) 
    or die("Unable to connect to MySQL"); 
echo "Connected to MySQL<br>"; 

// Check connection 
if (mysql_error()) 
    { 
    echo "Failed to connect to MySQL: " . mysql_error(); 
    } 

mysql_select_db('website'); 


$sql=mysql_query("INSERT INTO articles (id, title, name, hello) 
    VALUES('$id','$title','$name','$hello')") or die(mysql_error()); 

mysql_close($con); 

echo "test"; 
1

你是不是在所有執行查詢和在評論正確地指出,你沒有正確設置變量;

改變你的代碼以匹配:

$title = $_POST['title']; 
$id = $_POST['id']; 
$name = $_POST['name']; 
$hello = $_POST['hello']; 

$hostname="localhost:3036"; 
$username="root"; 
$password=""; 

$con = mysql_connect($hostname, $username, $password) 
    or die("Unable to connect to MySQL"); 
echo "Connected to MySQL<br>"; 

// Check connection 
if (mysql_error()) 
    { 
    echo "Failed to connect to MySQL: " . mysql_error(); 
    } 

mysql_select_db('website'); 

$sql="INSERT INTO articles (id, title, name, hello) 
    VALUES('$id','$title','$name','$hello')"; 

mysql_query ($sql, $con); 

mysql_close($con); 
0

首先你是不是定義被插入的變量。 '的$ id', '$標題', '$名', '$你好'。
定義以前插入,當$ _POST被接受,使用

else {$id'= $_POST['id'];} 

二。更重要的是,永遠不要使用這種代碼,它的方式是古老的,不贊成的,非常不健康的。這很容易SQL INJECTION
改爲使用PDO,並清理用戶提交的值。
還避免使用$GLOBALS,舊的,不贊成的,不安全的。

請參閱PHP sanitize,其中介紹瞭如何清理用戶提交的數據。選中此項:

$id=filter_var($_POST['id'], FILTER_SANITIZE_STRING); 
相關問題