Ved*_*ash 5 sql-server laravel
我应该怎么做才能在 SQL Server (2014) 中正确存储带有特殊字符 (UTF-8) 的数据?我的 HTML 页面是 UTF-8 编码的,数据库表中的列是类型nvarchar,连接字符集设置为 UTF-8,但字符串
海地夫妇 à la capacité
存储为
??????????????????
或有时
????????? ??????
在表中。我正在将 Laravel 5 与流浪家园一起使用。以下是连接参数:
'sqlsrv' => array(
'driver' => 'sqlsrv',
'host' => 'DB_HOST',
'database' => 'DB_DATABASE',
'username' => 'DB_USERNAME',
'password' => 'DB_PASSWORD',
'prefix' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
),
Run Code Online (Sandbox Code Playgroud)
并在 freetds.conf 中设置了以下内容:
[global]
tds version = 8.0
client charset = UTF-8
Run Code Online (Sandbox Code Playgroud)
您可以尝试 2017 年 1 月发布的适用于 Linux 的 MS 驱动程序。
#### Script to Install MS SQL Server driver on Ubuntu:
#!/bin/bash
# SQL Server Driver Installer for Laravel Homestead
#
# This script downloads, compiles, and installs the PHP 7 extension
# files for both the native sqlsrv and the PDO pdo_sqlsrv drivers.
echo '=================================================================='
echo ' Get the Microsoft Driver Source Code from Github'
echo '=================================================================='
cd ~
git clone https://github.com/Microsoft/msphpsql.git
cd msphpsql
git checkout PHP-7.0-Linux
echo '=================================================================='
echo ' Run the ODBC Installer Script'
echo '=================================================================='
sh ODBC\ install\ scripts/installodbc_ubuntu.sh
echo '=================================================================='
echo ' Compile and Install the Native sqlsrv Driver'
echo '=================================================================='
cd ~/msphpsql/source/sqlsrv
phpize && ./configure CXXFLAGS=-std=c++11 && make
sudo make install
sudo echo "extension=sqlsrv.so" | sudo tee /etc/php/7.0/mods-available/sqlsrv.ini
phpenmod sqlsrv
echo '=================================================================='
echo ' Compile and Install the pdo_sqlsrv Driver'
echo '=================================================================='
cd ~/msphpsql/source/pdo_sqlsrv
phpize && ./configure CXXFLAGS=-std=c++11 && make
sudo make install
sudo echo "extension=pdo_sqlsrv.so" | sudo tee /etc/php/7.0/mods-available/pdo_sqlsrv.ini
sudo phpenmod pdo_sqlsrv
echo '=================================================================='
echo ' Restart the PHP-FPM Service'
echo '=================================================================='
sudo systemctl restart php7.0-fpm.service
echo '=================================================================='
echo ' Clean Up'
echo '=================================================================='
echo "Done."
Run Code Online (Sandbox Code Playgroud)
或者使用预编译的拉取和安装方法,步骤如下:
wget https://github.com/Microsoft/msphpsql/releases/download/4.0.8-Linux/Ubuntu16.tar
tar -xf Ubuntu16.tar
sudo cp ./Ubuntu16/*nts*.so /usr/lib/php/20151012
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql mssql-tools
sudo touch /etc/php/7.0/mods-available/pdo_sqlsrv.ini
Run Code Online (Sandbox Code Playgroud)
如何禁用 dblib 模块:
sudo phpdismod pdo_dblib
sudo service php7.0-fpm restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2862 次 |
| 最近记录: |