PDO:选择

时间:2015-09-25 12:12:46

标签: php pdo

我正在尝试为文件中的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查询的占位符?

1 个答案:

答案 0 :(得分:1)

让我在5分钟前重复我在另一个答案中告诉你的内容:

  

数组键必须匹配查询中的占位符。如果您的查询具有不同的占位符集,则还需要不同的数组。

所以,这就是造成这个问题的原因。

  

据我所知,PDO上的SELECT查询不需要执行(),

你错了。你必须执行所有准备好的东西。

首先,创建仅包含一个元素的null数组,并将其用于$data

SELECT

以后的查询将其他项添加到此数组