-2

我有以下 PHP 代码:

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

typeID => 是数字,其他值是文本。

这段代码没有错误,但是插入查询不起作用(我不知道为什么,因为我没有收到任何错误消息)。

我该如何解决?

4

2 回答 2

1

您的代码存在许多问题。

  1. 它对 SQL 注入开放
  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/>";
}

看看这篇关于为什么你应该使用 PHP 的 PDO 进行数据库访问的文章

于 2013-06-28T10:26:16.087 回答
-1

试试这个

if(isset($_POST[articleTitle])) {
    $insert_query = mysqli_query("INSERT INTO Persons (articleTitle, articleContent,typeID)
    VALUES
    ('$_POST[articleTitle]','$_POST[articleContent]',$_POST[articleType])");
}
于 2013-06-28T10:15:59.363 回答