首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDOException: SQLSTATE[HY093]

PDOException: SQLSTATE[HY093]
EN

Stack Overflow用户
提问于 2020-12-24 10:09:22
回答 1查看 55关注 0票数 1

嘿嘿。

我对PHP很陌生,但对学习却很不自信。我发现这是处理数据库连接的方法。已经调试了代码,但还有一件顽固的事情。似乎不能把我的大脑包围在这个错误代码上。任何简单的指针我都能理解。;-)

我正在浏览这几页:https://www.php.net/manual/en/pdostatement.bindparam.php

错误消息:数据库连接establishedPDOException: SQLSTATEHY093:无效参数号:参数未在C:\xampp\htdocs\Test\dbtest.php:28堆栈跟踪中定义:#0 C:\xampp\htdocs\Test\dbtest.php(28):PDOStatement->execute() #1 {main}

代码语言:javascript
复制
<?php
// Require needed classes
require_once('dbhandler.php');

// Create needed objects
$dbh = new DBHandler();

// Check if database connection established successfully
if ($dbh->getInstance() === null) {
    die("No database connection");
}

//$datetime = date("Y-m-d H:i:s");
$epost = 'svante@telia.com'; 
$namn = 'Svante';
$användarnamn = 'Poffe';
$lösenord = '1596';

try {
    $sql = "INSERT INTO users(epost, namn, användarnamn, lösenord) VALUES(:epost, :namn, :användarnamn, :lösenord)";

    $stmt = $dbh->getInstance()->prepare($sql);
    $stmt->bindParam(':epost', $epost, PDO::PARAM_STR);       
    $stmt->bindParam(':namn', $namn, PDO::PARAM_STR); 
    $stmt->bindParam(':användarnamn', $användarnamn, PDO::PARAM_STR);
    $stmt->bindParam(':lösenord', $lösenord, PDO::PARAM_STR);   

    $stmt->execute();
} 

catch(PDOException $e) {
    echo $e;
}
?>

/Svante

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-24 10:21:59

可能值得尝试一个简化的版本,从PHP变量和指定的占位符中省略特殊字符。

代码语言:javascript
复制
<?php
    require_once('dbhandler.php');

    $dbh = new DBHandler();

    $e = 'svante@telia.com'; 
    $n = 'Svante';
    $a = 'Poffe';
    $l = '1596';

        $sql = "INSERT INTO users( `epost`, `namn`, `användarnamn`, `lösenord` ) VALUES( :e, :n, :a, :l )";

        $stmt = $dbh->getInstance()->prepare($sql);
        $stmt->bindParam(':e', $e, PDO::PARAM_STR);       
        $stmt->bindParam(':n', $n, PDO::PARAM_STR); 
        $stmt->bindParam(':a', $a, PDO::PARAM_STR);
        $stmt->bindParam(':l', $l, PDO::PARAM_STR);   

        $stmt->execute();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65436823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档