【发布时间】:2020-12-24 10:09:22
【问题描述】:
嘿嘿。
我是 PHP 新手,但学习困难重重。我发现这是处理数据库连接的方法。已经调试了代码,但还剩下一件顽固的事情。似乎无法将我的大脑包裹在这个错误代码上。任何指针都以简单的方式,所以即使我理解。 ;-)
我正在浏览这个页面:https://www.php.net/manual/en/pdostatement.bindparam.php
错误信息: 数据库连接建立PDOException: SQLSTATE[HY093]: 参数号无效:参数未在 C:\xampp\htdocs\Test\dbtest.php:28 堆栈跟踪:#0 C:\xampp\htdocs\Test\dbtest.php( 28): PDOStatement->execute() #1 {main}
<?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;
}
?>
/斯万特
【问题讨论】:
-
如果使用不带重音符号的字符,是否还会出现此错误?
-
你在这里吗? $stmt->bindParam(':epost', $epost, PDO::PARAM_STR); $stmt->bindParam(:epost, $epost, PDO::PARAM_STR);这就是手册所说的: $sth->bindParam(':calories', $calories, PDO::PARAM_INT);
-
哦,对不起。消息后做了一些更改。我编辑主要问题。它在第 28 排场外。
-
请将您的问题edit 发送至:澄清问题标题、更多细节或澄清问题、改进文本排列、改进代码格式。见How to Ask