【问题标题】:PDO bindParam will not bindPDO bindParam 不会绑定
【发布时间】:2012-03-31 13:32:59
【问题描述】:

我有以下准备好的语句,它不会绑定$u

$db = 'test';
$dbt = 'accounts';
$u = 'jacob';

$getAccountInfo = $dbh->prepare("SELECT `status`,`pass`,`fail_count`,`tel`,`role` FROM `$db`.`$dbt` WHERE `user`=:user;");
    $getAccountInfo->bindParam(':user', $u, PDO::PARAM_STR);
$getAccountInfo->execute();
$accountInfo = $getAccountInfo->fetch(PDO::FETCH_ASSOC);

echo '<p>$getAccountInfo: "';
var_dump($getAccountInfo);
echo '"</p>$accountInfo: "';
var_dump($accountInfo);
echo "\"<p>" . $accountInfo['status'] . "</p>";

返回:

$getAccountInfo: "object(PDOStatement)#2 (1) { ["queryString"]=> 字符串(109)“选择status,pass,fail_count,tel,role FROM test.accounts WHERE user=:user;" } "

$accountInfo: "bool(false)"

(我试过 bindValue 等)

没有错误消息/异常(但如果我提供正确的数据库连接信息,它会引发错误)

如果我将返回的 sql 复制/粘贴到命令行中并将 :user 替换为 'jacob',它就可以正常工作。

编辑:原来问题是脚本使用的帐户没有accounts 表的权限(即使它有select 授予test.*) .我认为原因是因为accounts 是在我授予该帐户选择权之后创建的:/

【问题讨论】:

    标签: php pdo prepared-statement sqlbindparameter


    【解决方案1】:

    原来问题是脚本使用的帐户没有表帐户的权限(即使它有一个选择授权进行测试。*)。我认为原因是因为帐户是在我授予该帐户选择权之后创建的:/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 2014-07-28
      • 2014-05-27
      • 2015-05-31
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多