当我尝试添加$stmt->bindParam(':username', $username, PDO::PARAM_STR);
到我的脚本时遇到致命错误。下面只是我脚本的一部分。我想要做的是让它使用会话用户名和id。如果我取出它username = :username
,$stmt->bindParam(':username', $username, PDO::PARAM_STR);
它会正常工作。
我得到的致命错误:
致命错误:未捕获的异常“PDOException”和消息“SQLSTATE [HY093]:无效的参数号:/home/www/test.php:7 中的混合命名参数和位置参数”堆栈跟踪:#0 /home/www/test.php (7): PDOStatement->execute() #1 {main} 在第 7 行的 /home/www/test.php 中抛出
$action = isset($_GET['action']) ? $_GET['action']: "";
if($action=='delete'){
$username = $_SESSION['user']['username'];<<<<<<<<I ADD THIS LINE
$query = "DELETE FROM hostingpackage WHERE username = :username And id = ?";
$stmt = $db->prepare($query);
$stmt->bindParam(1, $_GET['id']);
$stmt->bindParam(':username', $username, PDO::PARAM_STR);<<<<I ADD THIS LINE
$result = $stmt->execute();
header("Location: test.php");
die("Redirecting to test.php");
}