現在、奇妙なエラーが発生しています。
セットアップ:localdbを使用したMSSQL Server 2012 Expressターゲットテーブルの照合は次のとおりです:SQL_Latin1_General_CP1_CI_AS
Zend Server5.6MCryptでのPHP5.3.9とMCRYPT_RIJNDAEL_256およびMCRYPT_MODE_ECB
Sublime Text 2のデフォルトのエンコーディング(UTF8 BOMと読みました)
MSSQLサーバーの公式MSアダプターでPDOを使用しています。パスワードが原因で管理者テーブルに行を書き込めないということを除けば、すべてが正常に機能します。
私の暗号化されたパスワードを見てみましょう:
y"ûƒ^äjw¾bðúl5êù-Ö=W¿Š±¬GP¥Œy÷&ø
これはPDOトレースです。
Array
(
[0] => IMSSP
[1] => -7
[2] => An error occurred translating string for input param 3 to UCS-2: No mapping for the Unicode character exists in the target multi-byte code page.
)
SQL: [120] INSERT INTO administrator ( [username], [email], [password], [section] ) VALUES(:username, :email, :password, :section)
Params: 4
Key: Name: [9] :username
paramno=0
name=[9] ":username"
is_param=1
param_type=2
Key: Name: [6] :email
paramno=1
name=[6] ":email"
is_param=1
param_type=2
Key: Name: [9] :password
paramno=2
name=[9] ":password"
is_param=1
param_type=2
Key: Name: [8] :section
paramno=3
name=[8] ":section"
is_param=1
param_type=2
MSSQL Management Centerを使用すると、まったく同じSQLクエリで行を挿入できます。カラムのセットアップは問題ないと思います。
["id"]=>
string(3) "int"
["username"]=>
string(12) "nvarchar(45)"
["email"]=>
string(12) "nvarchar(45)"
["password"]=>
string(12) "varbinary(45)"
["section"]=>
string(11) "nvarchar(7)"
["country_code"]=>
string(11) "nvarchar(2)"
SQLステートメントを実行するために、プリペアドステートメントとbindParam
追加オプションのない関数を使用します。
誰かがアイデアを持っているなら、それを解決する方法を私に知らせてください。どんな助けでも大歓迎です!