1

试图在我的表中插入一行。有一匹母马,尝试使用数十个示例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);    
4

1 回答 1

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

所以,代码必须是

$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);   
于 2013-04-08T08:33:09.223 回答