【发布时间】:2019-04-15 00:35:34
【问题描述】:
我对 PHP 很陌生,我正在使用带有 PDO 的 PHP MVC。
我正在尝试更新给定用户 ID 的“个人资料”表的名字和姓氏。
这是我的模型:
public function update(){
$stmt = $this->_connection->prepare("UPDATE Profile SET first_name = ?, last_name = ?, WHERE user_id = :user_id");
$stmt->bindParam(':user_id', $_SESSION['user_id']);
$stmt->execute();
return $stmt->rowCount();
}
这是我的控制器:
$prof = $this->model('Profile');
$myProfile = $prof->getProfile($_SESSION['username']);
if(isset($_POST['action'])){
$myProfile ->first_name = $_POST['First_name'];
$myProfile ->last_name = $_POST['Last_name'];
$myProfile ->update();
}
它不起作用,我收到以下错误:
PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters (points to excute in model)
【问题讨论】:
-
错误信息很清楚,你同时使用了位置参数
?和命名参数:user_id。不能混用,只能使用一种。 -
另外,你有 3 个参数,但你只绑定了 1 个。
-
@catcon 我的更新查询应该是什么样的?我看的所有视频都没有 MVC。
-
@catcon 我不太确定我的更新查询应该是什么样子。如果我把 ?在 user_id 上,我收到一条错误消息,说没有绑定 [参数
-
你有 3 个参数,但你只绑定了 1 个,这是你如何使用它:php.net/manual/en/pdostatement.bindparam.php
标签: php model-view-controller pdo