我在 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 时。
任何人都知道如何使这个工作?一些铸造什么的?
谢谢!