相关疑难解决方法(0)

Laravel到SQL Server(sqlsrv).[PDOException]找不到驱动程序

介绍.我的laravel应用程序使用的是mysql,现在它需要托管在我正在工作的公司的网络中(我是一名远程工作者).这家公司是微软的,所以我需要将laravel集成到他们的SQL Server中.

我的.env中有这个

DB_CONNECTION=sqlsrv
DB_HOST=ip.address.of.server
DB_PORT=3306
DB_DATABASE=my_db
DB_USERNAME=my_username
DB_PASSWORD=my_password
Run Code Online (Sandbox Code Playgroud)

使用完毕后 php artisan migrate

错误:

  [PDOException]
  could not find driver
Run Code Online (Sandbox Code Playgroud)

我正在使用Ubuntu,一个专用于我的远程盒子(来自我的雇主).我之前尝试在我的laravel应用程序中使用sql server(使用我的Windows PC).据我记得,我在xampp php.ini中编辑了一些文本.作为一个新手Linux用户,对我来说太难了(因为我只使用CLI).

EDITED(新版本)

所以我已经从Ubuntu连接到数据库服务器了.我用了sqlcmd -S <host> -U <username>

我测试了查询(例如SELECT * from users_data)并且它有效.

现在,我修改了config/database.php,我添加了这个.

'sqlsrv' => [
                'driver'   => 'MSSQL',
                'host'     => env('DB_HOST', 'host.of.the.database'),
                'database' => env('DB_DATABASE', 'my_database'),
                'username' => env('DB_USERNAME', 'my_username'),
                'password' => env('DB_PASSWORD', 'my_pass'),
          'port'     => '1433',
                'prefix'   => '',
            ],
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误:

[InvalidArgumentException]
  Unsupported driver [MSSQL]
Run Code Online (Sandbox Code Playgroud)

"MSSQL"是我用来配置FreeTDS的名称.

php sql-server odbc pdo laravel

15
推荐指数
2
解决办法
3万
查看次数

如何在Linux中安装freetds?

我试图从Ubuntu连接到MSSQL服务器.我安装了像这里建议的freetds .

在此输入图像描述

但是,当我尝试配置/etc/odbc.ini并输入驱动程序路径时,我在位置没有驱动程序/usr/local/freetds/lib/libtdsodbc.so.

在此输入图像描述

有人可以帮我安装freetds并配置odbc来使用它吗?*edit1:我在/ usr/lib/x86_64-linux-gnu/odbc中找到了libtdsodbc.so.我应该使用该驱动程序/路径吗?

linux sql-server unixodbc freetds

12
推荐指数
2
解决办法
4万
查看次数

使用Perl从SQL Server检索数据时如何处理非ASCII字符?

我有一个在UNIX上运行的Perl脚本,它使用DBI连接到SQL Server数据库并从中检索数据.该脚本如下所示:

$dbh = DBI->connect("dbi:Sybase:server=$connect;charset=UTF-8", $login, $password) or die("Couldn't connect to $connect as $login/$password:
$DBI::errstr");


$sql = "use mydb";
$sth = $dbh->prepare($sql);
$sth->execute or die("execute failed");
$sth->finish;


$sql = "MyProc \@DATE='1/1/2008'";
$sth = $dbh->prepare($sql);
$sth->execute or die("execute failed");
while (($body) = $sth->fetchrow()) {
        print "$body\n";
}
$sth->finish;

$dbh->disconnect if $dbh;
Run Code Online (Sandbox Code Playgroud)

body变量从NVARCHAR列中检索数据并包含非ASCII字符.查询运行正常,但print语句吐出????? 当遇到非ASCII字符时.在DBI-> connect中我甚至指定了字符集,但没有运气.

有关如何让它工作的任何想法?

sql-server perl dbi

0
推荐指数
1
解决办法
2035
查看次数

如何在tsql中运行SQL脚本

我正在使用tsql(与FreeTDS一起安装),我想知道是否有办法从命令行在tsql中运行SQL脚本并将结果存入文本文件.

例如,在psql中,我可以这样做:

psql -U username -C "COPY 'SELECT * FROM some_table' to 'out.csv' with csv header"
Run Code Online (Sandbox Code Playgroud)

要么:

psql -U username -C "\i script.sql"
Run Code Online (Sandbox Code Playgroud)

并在script.sql中执行:

\o out.csv
SELECT * FROM  some_table;
Run Code Online (Sandbox Code Playgroud)

有没有办法在tsql中这样做?我已经阅读了linux手册页并在各处搜索,但我找不到方法.

t-sql linux freetds

0
推荐指数
2
解决办法
1万
查看次数

标签 统计

sql-server ×3

freetds ×2

linux ×2

dbi ×1

laravel ×1

odbc ×1

pdo ×1

perl ×1

php ×1

t-sql ×1

unixodbc ×1