PDO和Microsoft SQL:必须声明表变量“ P1”。
技术问答
260 人阅读
|
0 人回复
|
2023-09-12
|
我试图在PDO使用绑定从Microsoft SQL在数据库中选择一些项目。我使用的代码看起来与文档中的代码相似。但是,当我操作它时,有以下警告:
8 m' x9 Q* {" Y9 c: C( p警告:PDOStatement :: execute()[pdostatement.execute]:SQLSTATE
8 F' K9 i- Y! [+ [7 k/ {& Q9 \语法错误或访问冲突:1087 [Microsoft] [SQL Native Client] [SQL Server]必须声明表示变量* T9 R3 i6 I* A6 k# S
@ P1.(第40行(长文件路径)(SQLExecute [1087]在ext \ pdo_odbc \ odbc_stmt.c:254处)
0 u2 s1 k z6 x* t0 X* d* J以下是相关代码:( \- ` ? {! H% ^6 w+ Y. \
$table = "[User Site]";$user = "demo";$sql = "SELECT * FROM ? WHERE user='?'"; $sth = $db->prepare($sql);$sth->bindValue(1, $table,PDO:ARAM_STR);$sth->bindValue(2,$user,PDO:ARAM_STR);$sth->execute(); // fetch(PDO::FETCH_ASSOC);这可能是相关的。当我尝试使用命名参数标记(:table,:user)我得到的不是问号:
1 o. F6 h9 K* w+ D警告:PDOStatement :: bindValue()[pdostatement.bindvalue]:SQLSTATE
) i' O. ~0 w' F[HY093:无效参数编号:第39行(长文件路径)未定义参数
( N) ?( g$ a; L5 ]为什么不喜欢我准备的陈述?
3 R f4 {2 ~1 u$ c* `
* P: G4 {# k+ [3 @! ?5 r0 l: ] 解决方案: |
|
|
|
|
|