INSERT INTO不使用bindparam插入

时间:2013-04-08 08:28:54

标签: php pdo sql-insert

尝试在表格中插入一行。有了一匹母马,试图在tinterweb上使用数十个例子没有成功,我必须要理解PDO是如何工作的。

$stmt = $dbh->prepare ("INSERT INTO table_name (date, link, desc) 
VALUES (:date,:name,:desc)");
$stmt -> bindParam(':date', $date);
$stmt -> bindParam(':name', $name);
$stmt -> bindParam(':desc', $desc);
$stmt -> execute();

move_uploaded_file($_FILES["file"]["tmp_name"], $upload);    

1 个答案:

答案 0 :(得分:1)

  1. 您不应允许用户直接输入您的查询。
  2. 也不应该有用户定义的表名。您的数据库结构错误。它应该是一个预定义表,用于存储所有用户的数据。因此,它必须是字段内容,而不是表名
  3. 您需要先连接到PDO,然后正确使用它。请参阅PDO tag wiki
  4. 中的示例
  5. 所以,你将能够看到错误。
  6. 从错误中您必须知道desc是保留字并且必须格式化。
  7. 所以,代码必须是

    $stm = $dbh->prepare("INSERT INTO table (date,link,`desc`,type) VALUES (?,?,?,?)");
    $stm->execute(array($date,$name,$desc,$type));
    
    move_uploaded_file($_FILES["file"]["tmp_name"], $upload);   
    
相关问题