#php #sql-server #iis-7
#php #sql-сервер #iis-7
Вопрос:
У меня есть рабочая конфигурация: TestLink 1.9.10 PHP 5.4 IIS 7 MSSQL server 2008 R2 Данные UTF8 вставлены в базу данных с неправильной кодировкой. Также я использую SQLSRV и PDO_SQLSRV версии 3.0.1 Попытался изменить varchar на nvarchar DBfield тип. Результата нет. Есть идеи?
Ответ №1:
Hi putting "N" prefix for each string value like:
insert into table(col1,col2) values(N'value1',N'value2');
and example of PHP:
<?php
//Returns records with Id#46 or first name starting with 'Mary'
$server = '127.0.0.1';
$link = mssql_connect($server, 'sql_user', 'sql_user_pass');
//Select DB
$dbn = 'dbName';
mssql_select_db($dbn);
//input variables
$name='Mary%';
$id=46;
//necesssary for stored procedure
$params="@name varchar(50),@id int";
$paramslist="@name='$name%',@id='$id'";
$sql = "select FirstName,LastName,EmpId from employees where FirstName like @name or EmpId = @id " ;
$dbsql = "EXEC sp_executesql
N'$sql',
N'$params',
$paramslist";
//important to have the "N'" !
$result=mssql_query($dbsql,$link);
?>
Комментарии:
1. Это помогло вручную вставить данные UTF8 в базу данных. Но это решение мне не подходит. Потому что я не могу изменить весь php-код приложения. Тем не менее, спасибо за помощь. Я нашел другое решение своей проблемы: я везде меняю кодировку с UTF8 на WINDOWS-1251. Так что это помогло.