向mysql插入数据不适用于php

时间:2013-06-28 10:12:40

标签: php mysql insert

我有以下PHP代码:

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

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

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

我该如何解决?

2 个答案:

答案 0 :(得分:1)

您的代码存在许多问题。

  1. 对SQL injectoion开放
  2. mysql_ *函数已被弃用
  3. 此代码未经测试但应该给您一个想法:

    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/>";
    }
    

    Why you Should be using PHP’s PDO for Database Access

    上查看这篇文章

答案 1 :(得分:-1)

试试这个

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