Attualmente si verifica un errore strano.Come inserire dati binari in MSSQL utilizzando PDO
Il setup: MSSQL Server 2012 Express con un LocalDB La tabella di destinazione collazione è: SQL_Latin1_General_CP1_CI_AS
PHP 5.3.9 su uno Zend Server 5.6 MCrypt con MCRYPT_RIJNDAEL_256 e MCRYPT_MODE_ECB
Sublime Text 2 di default codifica (ho letto è UTF8 BOM)
Sto usando PDO con l'adattatore ufficiale MS per il server MSSQL. Tutto funziona bene a parte una cosa: Non riesco a scrivere una riga nella tabella del mio amministratore a causa della password.
Diamo un'occhiata al mio password crittografata:
y"ûƒ^äjw¾bðúl5êù-Ö=W¿Š±¬GP¥Œy÷&ø
Questa è la PDO Trace:
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
Quando uso il mio centro MSSQL Gestione posso inserire il mio fila con la stessa identica SQL query. L'impostazione della colonna è bene suppongo:
["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)"
Io uso istruzioni preparate e la funzione bindParam
con opzioni non più per eseguire il mio istruzioni SQL.
Se qualcuno ha un'idea, come risolverlo, per favore fatemelo sapere. Qualsiasi aiuto è apprezzato!
Non sono sicuro di ms sql, ma ci deve essere un modo per dichiarare una colonna binaria, cioè nessuna codifica o confronto. –
@Jack, grazie per il commento. Successivamente ho provato le colonne binary e varbinary, ma anche quelle non funzionano. – Richard
Ok, c'è un modo per associare forse il parametro come binario in PDO? –