2013-06-28 83 views
-2

工作我有以下PHP代碼:插入數據到MySQL不從PHP

if($_SERVER['REQUEST_METHOD'] == 'POST') 
    { 
    $insert_query = mysql_query("INSERT INTO articles(articleTitle, articleContent, typeID) 
    VALUES 
    ('$_POST[articleTitle]','$_POST[articleContent]',$_POST[articleType])"); 
    } 

TYPEID =>是數,其它值的文本。

此代碼沒有錯誤,但插入查詢不起作用(我不知道爲什麼,因爲我沒有收到任何錯誤消息)。

我該如何解決?

+0

mysql_ *函數已被棄用。使用PDO或mysqli – Herbert

+1

[偉大的逃避現實(或:你需要知道如何處理文本中的文本)](http://kunststube.net/escapism/) – deceze

回答

1

有許多與你的代碼的問題。

  1. 它是開放的,以SQL injectoion
  2. mysql_ *功能已被棄用

此代碼是未經測試,但應該給你一個想法:

try 
    $dbh = new PDO('mysql:host=localhost;dbname=your_database_name', $user, $password); 
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $sth = $dbh->prepare('INSERT INTO Persons (articleTitle, articleContent, typeID) VALUES (:articleTitle, :articleContent, :articleType)'); 
    $sth->execute($_POST); 

    $dbh = null; 
} catch (PDOException $e) { 
    print "Error!: " . $e->getMessage() . "<br/>"; 
} 

看一看這篇文章on Why you Should be using PHP’s PDO for Database Access

-1

試試這個

if(isset($_POST[articleTitle])) { 
    $insert_query = mysqli_query("INSERT INTO Persons (articleTitle, articleContent,typeID) 
    VALUES 
    ('$_POST[articleTitle]','$_POST[articleContent]',$_POST[articleType])"); 
}