Php 更新数据。错误:SQLSTATE[HY093]:无效参数编号:绑定变量的数量与令牌的数量不匹配
我想更新登录用户配置文件。当我点击更新按钮时,出现了这个错误。错误:SQLSTATE[HY093]:参数编号无效:绑定变量的数量与令牌的数量不匹配。我可以知道为什么以及如何解决它吗 这是为了更新用户的数据 pelanggan_crud.phpPhp 更新数据。错误:SQLSTATE[HY093]:无效参数编号:绑定变量的数量与令牌的数量不匹配,php,pdo,Php,Pdo,我想更新登录用户配置文件。当我点击更新按钮时,出现了这个错误。错误:SQLSTATE[HY093]:参数编号无效:绑定变量的数量与令牌的数量不匹配。我可以知道为什么以及如何解决它吗 这是为了更新用户的数据 pelanggan_crud.php <?php include_once 'database.php'; $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn-&g
<?php
include_once 'database.php';
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//Create
if (isset($_POST['create'])) {
try {
$stmt = $conn->prepare("INSERT INTO tbl_pelanggan(pelanggan_id, nama_penuh, nama_pengguna, katalaluan, alamat_pelanggan, email_pelanggan, notel_pelanggan, img) VALUES(:pid, :name, :nama, :password, :alamat, :email, :notel, :img)");
$stmt->bindParam(':pid', $pid, PDO::PARAM_STR);
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
$stmt->bindParam(':nama', $nama, PDO::PARAM_STR);
$stmt->bindParam(':password', $pass, PDO::PARAM_STR);
$stmt->bindParam(':alamat', $alamat, PDO::PARAM_STR);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':notel', $notel, PDO::PARAM_STR);
$stmt->bindParam(':img', $img, PDO::PARAM_STR);
$pid = uniqid('P', true);
$name = $_POST['name'];
$nama = $_POST['nama'];
$pass = md5($_POST['password']);
$repass = md5($_POST['repassword']);
$alamat = $_POST['alamat'];
$email = $_POST['email'];
$notel = $_POST['notel'];
$img = $_POST['img'];
if($pass == $repass) {
echo "<script>alert('Data anda berjaya direkodkan. Terima kasih. Sila log masuk semula')</script>";
$stmt->execute();
}
if($pass !== $repass) {
echo "<script>alert('Pastikan katalaluan dan taip semula katalaluan adalah sama')</script>";
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
}
//Update
if (isset($_POST['update'])) {
try {
$stmt = $conn->prepare("UPDATE tbl_pelanggan SET nama_penuh = : name, nama_pengguna = :nama, katalaluan = :password, alamat_pelanggan = :alamat, email_pelanggan = :email, notel_pelanggan = :notel, img = :img
WHERE pelanggan_id = :pid");
$stmt->bindParam(':pid', $pid, PDO::PARAM_STR);
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
$stmt->bindParam(':nama', $nama, PDO::PARAM_STR);
$stmt->bindParam(':password', $pass, PDO::PARAM_STR);
$stmt->bindParam(':alamat', $alamat, PDO::PARAM_STR);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':notel', $notel, PDO::PARAM_STR);
$stmt->bindParam(':img', $img, PDO::PARAM_STR);
$pid = $_POST['pid'];
$name = $_POST['name'];
$nama = $_POST['nama'];
$pass = md5($_POST['password']);
$repass = md5($_POST['repassword']);
$alamat = $_POST['alamat'];
$email = $_POST['email'];
$notel = $_POST['notel'];
$img = $_POST['img'];
if($pass == $repass) {
echo "<script>alert('Data anda berjaya dikemas kini. Terima kasih! ')</script>";
$stmt->execute();
header("Location: profil.php");
}
if($pass !== $repass) {
echo "<script>alert('Pastikan katalaluan dan taip semula katalaluan adalah sama!')</script>";
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
}
//Delete
if (isset($_GET['delete'])) {
try {
$stmt = $conn->prepare("DELETE FROM tbl_pelanggan where pelanggan_id = :pid");
$stmt->bindParam(':pid', $pid, PDO::PARAM_STR);
$pid = $_GET['delete'];
$stmt->execute();
header("Location: mainpelanggan.php");
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
}
//Edit
if (isset($_GET['edit'])) {
try {
$stmt = $conn->prepare("SELECT * FROM tbl_pelanggan where pelanggan_id = :pid");
$stmt->bindParam(':pid', $pid, PDO::PARAM_STR);
$pid = $_GET['edit'];
$stmt->execute();
$editrow = $stmt->fetch(PDO::FETCH_ASSOC);
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
}
$conn = null;
?>
哪个SQL语句失败?是insert还是update?在update语句中,请注意额外的空格提示::name
应该是:name
,并在bindParam()
call.ohh.之前初始化变量。。我没有意识到那个错误。tq这么多帮助我哪条SQL语句失败了?是insert还是update?在update语句中,请注意额外的空格提示::name
应该是:name
,并在bindParam()
call.ohh.之前初始化变量。。我没有意识到那个错误。谢谢你帮助我