使用php(pdo)将数据插入mysql时出错

时间:2017-05-22 06:59:07

标签: php pdo

<?php
      $stmt = $db->prepare("INSERT INTO slider(ZSLIDE_SLIDER_NO, ZSLIDE_TITLE, ZSLIDE_IMG, ZSLIDE_IMG_ALT, ZSLIDE_LINK, ZSLIDE_LINK_TARGET,ZSLIDE_COUNTRY_ID, ZSLIDE_STATUS) VALUES(:ZSLIDE_SLIDER_NO, :ZSLIDE_TITLE, :ZSLIDE_IMG, :ZSLIDE_IMG_ALT, :ZSLIDE_LINK, :ZSLIDE_LINK_TARGET,:ZSLIDE_COUNTRY_ID :ZSLIDE_STATUS)");

     $is_success = $stmt->execute(array(":ZSLIDE_SLIDER_NO" => $slider_no, ":ZSLIDE_TITLE" => $title, ":ZSLIDE_IMG" => $thumbimg_filename, ":ZSLIDE_IMG_ALT" => $alt, ":ZSLIDE_LINK" => $link, ":ZSLIDE_LINK_TARGET" => $link_target, ":ZSLIDE_COUNTRY_ID"=>$country_id, ":ZSLIDE_STATUS" => $activate_status));

        // print_r($is_success);exit;
        if($is_success)
        {
            echo "<script>alert('Added Successfully.');</script>";
        }
        else
        {
            echo "<script>alert('Failed to add.');</script>";
        }

3 个答案:

答案 0 :(得分:0)

请正确地将值绑定到查询中的参数。 像这样:

$stmt->bindParam(':ZSLIDE_SLIDER_NO', $slider_no, PDO::PARAM_INT);

您在执行查询时尝试绑定参数。这是不可能的,因此您必须在执行查询之前绑定参数。

另外,正如Alon Eitan正确指出的那样,您忘记在陈述:ZSLIDE_COUNTRY_ID :ZSLIDE_STATUS

中的最后两个占位符之间添加逗号

答案 1 :(得分:0)

你在这里错过了逗号

:ZSLIDE_COUNTRY_ID :ZSLIDE_STATUS

正确的:

:ZSLIDE_COUNTRY_ID,:ZSLIDE_STATUS

答案 2 :(得分:-1)

可能的错误:

  • 在表格slider
  • 的数据库中检查正确的列
  • 检查SQL的最后一个错误:
else {
  echo "< script>alert('Failed to add: " . $db->errorInfor() . ");</ script>";
}

问题

在绑定中,您错过了,

  

:ZSLIDE_COUNTRY_ID:ZSLIDE_STATUS