우리의 응용 프로그램에서는 SQL 데이터베이스를 사용하고 있으며 sqladmin.winhost.com에서 호스트됩니다. 우리는 Windows 서버와 함께 ODBC 드라이버와 함께 PHP를 설치했습니다. 데이터베이스가 데이터 정렬 "Arabic_CI_AI"을 사용 중입니다.MSSQL을 사용하여 ODBC PHP 드라이버에 아랍어 텍스트 삽입
아래는 간단한 데이터를 표에 삽입하는 코드입니다. 쿼리는 완전히 성공했지만 아랍어 데이터는 잃어버린 일부 임의의 문자열 insted 테이블입니다.
$ request [ 'username']의 값이 데이터베이스에서 "احمد علي عريبي"일 때 임의의 문자열이 수신됩니다.
<?php
$connectionString = 'DRIVER={SQL Server};SERVER=' . SERVER_NAME . ';DATABASE=' . DB_NAME;
$conn = odbc_connect($connectionString, USER_NAME, PASSWORD);
$request=$_POST;
echo $sql="INSERT INTO MobileNotificaiton.emp_user VALUES('[email protected]','MXI',200,'{$request['username']}','123','12365897452',1,'','','','')";
$results = odbc_exec($conn, $sql);
$close = odbc_close($conn);
?>
아무도 나를 안내 할 수 있습니까?
미리 감사드립니다.
PHP 응용 프로그램에서 (아랍어) 데이터의 인코딩은 무엇입니까? UTF-8? SQL Server에서 해당 열의 열 유형은 무엇입니까? Nvarchar? – erg
PHP 응용 프로그램에서 아랍어 인코딩은 UTF-8이고 열 유형은 nvarchar이며 데이터베이스의 데이터 정렬은 Arabic_CI_AI입니다. –
'N '{$ request ['username ']}'을 (를) 사용해 보셨습니까? 'N'을 문자열 앞에두면 유니 코드 값이 사용됩니다. 정보 [여기]를 참조하십시오. (https://support.microsoft.com/en-ca/help/239530/you-must-precede-all-unicode-strings-with-a-prefix-n-when-you-deal- with-unicode-string-constants-in-sql-server) – chrisuae