【发布时间】:2021-07-15 10:48:03
【问题描述】:
我在我的项目中使用了 dblib 驱动程序, 但执行查询异常
Database Exception – yii\db\Exception
SQLSTATE[HY000]: General error: 20018 Invalid object name 't_user'. [20018] (severity 16) [select top 10 * from t_user]
The SQL being executed was: select top 10 * from t_user
Error Info: Array
(
[0] => HY000
[1] => 20018
[2] => Invalid object name 't_user'. [20018] (severity 16) [select top 10 * from t_user]
[3] => -1
[4] => 16
)
↵
Caused by: PDOException
SQLSTATE[HY000]: General error: 20018 Invalid object name 't_user'. [20018] (severity 16) [select top 10 * from t_user]
如果我使用原生 PHP 就可以了
<?php
$dbh = new PDO("dblib:host=;dbname=","","");
$query = $dbh->prepare("SELECT top 1 * from t_user");
$query->execute();
while($row = $query->fetch()){
print_r($row);
}
我安装 freetds php_dblib
配置信息
➜ www /usr/local/Cellar/freetds/1.1.40/bin/tsql -C
Compile-time settings (established with the "configure" script)
Version: freetds v1.1.40
freetds.conf directory: /usr/local/etc
MS db-lib source compatibility: no
Sybase binary compatibility: yes
Thread safety: yes
iconv library: yes
TDS version: 7.3
iODBC: no
unixodbc: yes
SSPI "trusted" logins: no
Kerberos: yes
OpenSSL: yes
GnuTLS: no
MARS: yes
➜ www php -v
PHP 7.3.18 (cli) (built: May 29 2020 02:17:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.18, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v3.0.4, Copyright (c) 2002-2021, by Derick Rethans
with Zend OPcache v7.3.18, Copyright (c) 1999-2018, by Zend Technologies
➜ www php -m | grep dblib
pdo_dblib
➜ www php --ri pdo_dblib
pdo_dblib
PDO Driver for FreeTDS/Sybase DB-lib => enabled
Flavour => freetds
yii2 配置 [使用 yii2 basic 2.0.x]
<?php
return [
'class' => 'yii\db\Connection', // yii connection
'dsn' => 'dblib:host=;database=', // this is dblib
'username' => '', // user name
'password' => '', // password
'charset' => 'utf8',
];
我不知道如何解决这个问题。 大牛求帮忙~
【问题讨论】:
-
根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。
-
您能否尝试使用从 dbo.user 中选择前 10 * 名而不是从用户中选择前 10 * 名
-
另外,
USER是 T-SQL 中的 reserved keyword。
标签: php sql-server yii2