PDO插入无法正常工作

时间:2014-04-05 12:47:34

标签: php mysql pdo

我不知道我做错了什么。它不起作用。

我对此感到震惊。我无法弄明白。

$sql="INSERT INTO hr_daily_claim(date,
                                 site,
                                 from,
                                 to,
                                 rental,
                                 vehicle,
                                 claim_id,
                                 parking,
                                 beverages,
                                 others) 

                          VALUES(:date,
                                 :site,
                                 :from,
                                 :to,
                                 :rental,
                                 :vehicle,
                                 :claim_id,
                                 :parking,
                                 :beverages,
                                 :others)";
$stmt = $db->prepare($sql);
$stmt->execute(array(
                     ':date'     => $date, 
                     ':site'     => $site, 
                     ':from'     => $from, 
                     ':to'       => $to,
                     ':rental'   => $rental,
                     ':vehicle'  => $vehicle,
                     ':claim_id' => $cliamId,
                     ':parking'  => $parking,
                     ':beverages'=> $beverages,
                     ':others'   => $others    ));

请有人帮助我。 它没有给我任何错误。但受影响的行= 0;根本不插入。

下面是表格结构

 `id` int(11) NOT NULL AUTO_INCREMENT,
  `claim_id` varchar(45) DEFAULT NULL,
  `date` varchar(10) DEFAULT NULL,
  `site` varchar(45) DEFAULT NULL,
  `from` varchar(45) DEFAULT NULL,
  `to` varchar(45) DEFAULT NULL,
  `rental` int(11) DEFAULT NULL,
  `vehicle` int(11) DEFAULT NULL,
  `parking` int(11) DEFAULT NULL,
  `beverages` int(11) DEFAULT NULL,
  `others` int(11) DEFAULT NULL,
  `timestamp` timestamp NULL DEFAULT CURRENT_TIMESTAMP,

2 个答案:

答案 0 :(得分:6)

MySQL中的{p> fromtoreserved words。你需要用反引号包装它。

$sql="INSERT INTO hr_daily_claim(
                `date`,
                `site`,
                `from`,                //<-------- This
                `to`,                  //<-------- This
                `rental`, 
                `vehicle`,
                `claim_id`,
                `parking`,
                `beverages`,
                `others`
                        ) 

旁注:$cliamId中的':claim_id' => $cliamId,变量中可能有一个拼写错误,可能读作':claim_id' => $claimId,,因此请检查一下,因为这些变量未在您的问题中发布

如果一个失败,您的整个查询将失败。另外需要注意的是$claimId$claimid不一样。变量区分大小写。

答案 1 :(得分:1)

在引号

之间写下fromto个字词
`from`
`to`

就像在表结构代码中一样