【问题标题】:Insertion using PDO php使用 PDO php 插入
【发布时间】:2014-05-06 16:22:07
【问题描述】:

我承认我是 PDO 的新手,但我必须更改 mysql 中的表单。我正在建立连接,但没有插入任何内容。我真的被卡住了,感觉自己像个白痴,因为我知道这是我想念的简单的东西

我已经尝试在插入的上方和之后使用数组.. 都不起作用

任何帮助将不胜感激

这是我的代码:

$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);


$STH = $conn->prepare("INSERT INTO PinTrade (ID, PIN, Year, Make, Model, Mileage, FirstName, LastName, Phone, Email, Date)
VALUES ('', '$pin', '$year', '$make', '$model', '$mileage', '$first', '$last', '$phone', '$email', '1234' )");
$STH->bindParam(':PIN', $_POST['pin']);
$STH->bindParam(':Year', $_POST['year']);
$STH->bindParam(':Make', $_POST['make']);   
$STH->bindParam(':Model', $_POST['model']); 
$STH->bindParam(':Mileage', $_POST['mileage']); 
$STH->bindParam(':FirstName', $_POST['first']); 
$STH->bindParam(':LastName', $_POST['last']);
$STH->bindParam(':Phone', $_POST['phone']); 
$STH->bindParam(':Email', $_POST['email']);
$STH->execute();

【问题讨论】:

  • 您需要将所有值更改为 bindParam() 句柄 - 不是 '$model' 而是 :model 在您的查询中。
  • 但是您的问题很愚蠢:您使用 PDO 的方式错误。您正在学习什么教程?
  • @Your Common Sense 显然是坏的 :) 我开始回到使用 ColdFusion 的恐龙时代,所以我应该有更好的把握.. 但我一直磕磕绊绊直到我得到它.. 任何指针或者你可以列出的 tuts 会很棒!
  • 我不敢相信任何教程会告诉您直接将变量添加到查询中。你尝试过 tuts+ one 吗?

标签: php forms pdo


【解决方案1】:

去掉查询值中的美元符号和引号:

$STH = $conn->prepare("INSERT INTO PinTrade (ID, PIN, Year, Make,
                        Model, Mileage,        FirstName, LastName, Phone, Email, Date)
                       VALUES (null, :PIN, :Year, :Make, //and so on.... 

另外注意,假设ID是自增字段,插入null即可

  VALUES (null, :PIN, 

最后,如果你从 post 数组中提取,我会使用 bindValue 而不是 bindParam

【讨论】:

  • 感谢所有提供帮助的人。我真的非常感谢!
猜你喜欢
  • 2013-08-20
  • 2013-05-19
  • 1970-01-01
  • 2015-04-29
  • 2013-02-25
  • 2015-02-28
  • 2013-05-09
  • 2023-03-11
  • 1970-01-01
相关资源
最近更新 更多