0

嗨,似乎 bindParam 或 bindValue 方法都不起作用。

请指教。我试图将 $dbname 绑定到 dbtest。它似乎不起作用!

绑定参数

$dbname = "test1";
$stmt=$dbh->prepare('use :dbtest');
$stmt->bindParam(':dbtest', $dbname, PDO::PARAM_STR);
$firephp->fb($stmt); 
try
{   $stmt->execute();
    $stmt=$dbh->prepare('select database()');
    $stmt->execute();
    $count = $stmt->fetch(PDO::FETCH_ASSOC);
    $firephp->warn("Attempting to use selected database is successful.");
}    

绑定值

$dbname = "test1";
$stmt=$dbh->prepare('use :dbtest');
$stmt->bindValue(':dbtest', $dbname, PDO::PARAM_STR);
$firephp->fb($stmt); 
try
{   $stmt->execute();
    $stmt=$dbh->prepare('select database()');
    $stmt->execute();
    $count = $stmt->fetch(PDO::FETCH_ASSOC);
    $firephp->warn("Attempting to use selected database is successful.");
    $firephp->fb($count);
}    

可能是什么问题呢?

4

1 回答 1

0

首先,本机准备好的语句不适用于标识符
其次,动态绑定数据库没有意义。它们应该是恒定的。

因此,在DSN中选择您的数据库,然后使用 bindValue 在查询中绑定

于 2013-06-19T09:57:09.917 回答