PDO更新挑战

时间:2015-02-17 02:00:29

标签: php mysql pdo

所以我在mysql中构建了一个应用程序,并且在更新数据库中的记录时遇到了挑战。每个人都更有兴趣告诉我,我应该只使用PDO。 因此,我决定开始学习PDO连接和查询字符串以及使用prep stmts的实践,而不是打架。

无论如何,在我的练习和教程中,我可以从数据库中提取和解析信息而不会遇到任何挑战。但是当涉及更新或插入新记录时,没有插入任何东西,我找不到原因。

最初我有一个变量的表单帖子,但是没有用 所以我硬编码变量,但它仍然没有工作

我可以使用一些帮助....任何人都可以看到这个插入php脚本有什么问题吗?

<?php 
$user="111";
$pass="111";
$database="111";
$host="111";
$odb = new PDO("mysql:host=$host;dbname=$database", $user, $pass);

$event='Special Speaker';
$descript='We have special speakers comming on tuesday night';
$sp1='Speaker Mr.A';
$sp2='Speaker Mr.B';
$date='5-5-15';
$created = '5-5-15';
$id=7;

$stmt=$odb->Prepare("INSERT INTO events(ID,Event,Descript,Sp1,Sp2,Created,Date)
        VALUES (:ID,:Event,:Descript,:Sp1,:Sp2,:Created,:Date");

$stmt->bindParam(':ID',$id);
$stmt->bindParam(':Event',$event);
$stmt->bindParam(':Descript',$descript);
$stmt->bindParam(':Sp1',$sp1);
$stmt->bindParam(':Sp2',$sp2);
$stmt->bindParam(':Created',$created);
$stmt->bindParam(':Date',$date);
$stmt->execute(); 


?>

1 个答案:

答案 0 :(得分:0)

  1. 您可能必须指定您的ID是这样的int:$stmt->bindParam(':calories', $calories, PDO::PARAM_INT);
  2. 您的数据库可能阻止您在该表中插入ID(如果它是Identity / Primary列和/或自动递增)。
  3. 启用PDO警告或异常是一个好主意,以便它可以告诉您哪些是错误的或什么是失败的。有关详细信息,请参阅此处:http://php.net/manual/en/pdo.error-handling.php