我正在尝试为文件中的PDO查询设置一个包含所有必需参数的数组,其中第一个查询是SELECT
只使用一个参数。
$data = array(
'us_id' => $_POST['us_id'],
'us_credits' => $_POST['us_credits'],
'us_access' => $_POST['us_access']
);
$selectUsers= "SELECT * FROM ws_users WHERE us_id= :us_id";
$statementSelectUsers = $pdo->prepare($selectUsers);
$statementSelectUsers->execute($data);
$result = $statementSelectUsers->fetch(PDO::FETCH_ASSOC);
$us_fk_ui_id = $result['us_fk_ui_id'];
执行时,出现致命错误:
致命错误:带有消息的未捕获异常'PDOException' 'SQLSTATE [HY093]:参数号无效:绑定变量数 与令牌的数量不匹配 第25行的C:\ wamp \ www \ waisap \ actions \ ad_updateUserInfo.php
第25行是$statementSelectUsers->execute($data);
行
据我所知,PDO上的SELECT
查询不需要execute()
,但如果没有执行查询,我就无法将我的数组中包含的绑定数据传递给查询的占位符。这是错误的原因吗?如何传递一个数组以应用于我的SELECT
查询的占位符?
答案 0 :(得分:1)
让我在5分钟前重复我在另一个答案中告诉你的内容:
数组键必须匹配查询中的占位符。如果您的查询具有不同的占位符集,则还需要不同的数组。
所以,这就是造成这个问题的原因。
据我所知,PDO上的SELECT查询不需要执行(),
你错了。你必须执行所有准备好的东西。
首先,创建仅包含一个元素的null
数组,并将其用于$data
SELECT
以后的查询将其他项添加到此数组