gpt4 book ai didi

php - mysql 准备好的语句,难以理解它是如何工作的

转载 作者:行者123 更新时间:2023-11-29 04:58:18 24 4
gpt4 key购买 nike

我正在尝试使用准备好的语句,但无法成功运行。这是我的代码:

 function addAlbum($album){
$connection = mysqli_connect(HOST,USER,PASS,DATABASE);
/*$sql = 'INSERT INTO `'.TABLE_ALBUMS.'` (albumName) VALUES ("'.$album.'")';
$result = mysqli_query($connection,$sql);*/
$stmt = $dbh->prepare('INSERT INTO `'.TABLE_ALBUMS.'` (albumName) VALUES ("'.$album.'")');
$stmt->bindParam(':albumName', $album);
$result = $stmt->execute();

if($result){
header("Location: index.php?success");
} else {
header("Location: index.php?fail");
}

}

我已经在 firefox 中运行了它,但出现了错误,这就是我得到的结果:

Fatal error: Call to undefined method mysqli_stmt::bindParam() in /Applications/MAMP/htdocs/PHPproject/includes/functions.inc.php on line 16

谁能告诉我哪里出错了?

非常感谢

最佳答案

bind 的第一个参数应该是变量的类型:

$stmt->bind_param("s", $album);

你还应该检查 execute() 的返回值而不是 $stmt:

$result = $stmt->execute();
if($result){
echo "yes";
}
else {
echo "no";
}

我还要说的是,每次插入内容时都准备语句并不是一个好主意。准备好的语句应该是类变量,或者如果您不在 oop 中,则应该是全局变量,因此您不必在每次调用函数时都准备语句。只需编写一个函数 init() 来准备您将使用的所有语句。

关于php - mysql 准备好的语句,难以理解它是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4475108/

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