duanqianwei2485 2016-10-18 18:40
浏览 75

为什么我不能在PHP中使用bindValue

I'm trying to update my PHP code by binding parameters with PDOStatement::bindValue.

The code is receiving an array with key-value pairs with the same names (keys) as fields in MySQL-database.

Table is like

CREATE TABLE `kund` (
  `kund_nummer` smallint(6) NOT NULL AUTO_INCREMENT,
  `fornamn` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
  `efternamn` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
  `telefon` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
  `org_nummer` char(10) COLLATE utf8_unicode_ci DEFAULT NULL,
  `utflyttdatum` date DEFAULT NULL,
  `kommentar` varchar(75) COLLATE utf8_unicode_ci DEFAULT NULL,
  `sparad_datum` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`kund_nummer`),
  UNIQUE KEY `efternamn` (`efternamn`,`org_nummer`)
) ENGINE=MyISAM 
    AUTO_INCREMENT=69 
    DEFAULT CHARSET=utf8   
    COLLATE=utf8_unicode_ci |

And the PHP code is: ... $fields = $_POST; ...

    $query = "INSERT INTO kund (";

    foreach ($fields as $k => $v) {
        $query .= $k . ",";
    }

    $query = substr($query, 0, -1);

    $query .= ") VALUES (";

    foreach ($fields as $k => $v) {
            $query .= ":$k,";
    }

    $query = substr($query, 0, -1);

    $query .= ")";
    $stmt = $conn->prepare($query);
    foreach ($fields as $k => $v){
            $stmt->bindValue("':$k'",$v,PDO::PARAM_STR);
    }


    try {
        $stmt->execute();
    } catch (PDOException $ex) {
        if ($ex->getCode() == 23000) {
        }
        echo $ex;
    }

I get the error:

exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined'

Can some one tell what's wrong? Greetings.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
    • ¥15 如何在scanpy上做差异基因和通路富集?
    • ¥20 关于#硬件工程#的问题,请各位专家解答!
    • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
    • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 報錯:Person is not mapped,如何解決?