gpt4 book ai didi

php - 无法使用带有 PDO::execute() 的 php 插入数据库

转载 作者:搜寻专家 更新时间:2023-10-30 22:19:08 24 4
gpt4 key购买 nike

我已经创建了一个简单的 mySQL 数据库,我正在尝试使用 PHP 向其中插入一些测试数据。当我在 Firefox 上运行该方法时,我收到以下消息,但我无法解决此问题:

警告:PDOStatement::execute() [pdostatement.execute]:SQLSTATE[HY093]:无效参数号:

我将样本插入数据库的方法是:

public function confirmInsert(){
$admin="admin";
$pass="12345v";
$mail="admin@example.com";
$insertSQL = "INSERT INTO 'users' ('user_name', 'user_pass, 'user_email')
VALUES (
:admin,
:pass,
:mail)";
try {

$stmt = $this->db->prepare($insertSQL);
$stmt ->bindParam(':user_name',$admin, PDO::PARAM_STR);
$stmt ->bindParam(':user_pass', $pass, PDO::PARAM_STR);
$stmt->bindParam(':user_email', $mail,PDO::PARAM_STR);
$stmt->execute();
$stmt->closeCursor();
return TRUE;
} catch (Exception $e) {
$e -> getMessage();
}
}

我在//localhost 上运行,并使用 apache 2.2 和 php 5.2.17。谢谢!!

最佳答案

'您在查询中和绑定(bind)参数时的参数名称不同。您还必须删除查询中字段名称两边的引号。

应该这样更好:

public function confirmInsert(){
$admin='admin';
$pass='12345v';
$mail='admin@example.com';
$insertSQL = "INSERT INTO users (user_name, user_pass, user_email)
VALUES (
:admin,
:pass,
:mail)";
try {

$stmt = $this->db->prepare($insertSQL);
$stmt ->bindParam(':admin',$admin, PDO::PARAM_STR);
$stmt ->bindParam(':pass', $pass, PDO::PARAM_STR);
$stmt->bindParam(':mail', $mail,PDO::PARAM_STR);
$stmt->execute();
$stmt->closeCursor();
return TRUE;
} catch (Exception $e) {
$e -> getMessage();
}
}

关于php - 无法使用带有 PDO::execute() 的 php 插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6644744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com