SQL Server でバインド変数を使用して東洋文字を挿入する際に問題が発生しています。MSSQL コマンドと PHP を使用しています。
私のPHPコードは次のようなものです:
$sql = "
CREATE TABLE table_test
( id int
,nvarchar_latin nvarchar(255) collate sql_latin1_general_cp1_ci_as
);";
$stmt = mssql_query($sql);
$conn = mssql_connect("server","user","pass");
mssql_select_db('test')
$stmt = mssql_init('test..sp_chinese', $conn);
$id = 1;
$nvarchar_latin = '重建議';
mssql_bind($stmt, '@id' , $id , SQLINT1);
mssql_bind($stmt, @nvarchar_latin, $nvarchar_latin, SQLVARCHAR);
mssql_execute($stmt);
私の手順は次のとおりです。
ALTER PROCEDURE sp_chinese
@id int
,@nvarchar_latin nvarchar (255)
AS
BEGIN
INSERT INTO char_chines (id, nvarchar_latin)
VALUES (@id, @nvarchar_latin);
END
東洋の文字を通常の文字に変更すると、これが機能します。この挿入を直接実行すると、問題なく動作します。
INSERT INTO table_test (id, nvarchar_latin)
VALUES (1, '重建議');
したがって、明らかに問題は、PHP から SQL Server に変数を送信するときです。
誰でもこれを機能させる方法の手がかりを持っていますか? キャスティングか何か?
ありがとう!