我想在MySQL中使用AES_DECRYPT來解密成功加密的SSN。在輸出中,我得到單詞「數組」,而不是來自該字段的實際數據。我的PHP和MySQL知識有點生疏,所以我確信這是我忽略的一些愚蠢的東西。任何幫助,將不勝感激。AES_DECRYPT返回「Array」而不是解密數據
OUTPUT:
verify_name other_names SSN DOB
:測試:測試:數組:測試
CODE:
$key="88b871WZ3SntWK67rN3l2J1SvMqsOjyk";
$SQLstring = "SELECT * FROM applications";
$QueryResult = @mysql_query($SQLstring, $conn) or die("Query Problem - "
. mysql_error($conn) . " - Error Number - "
. mysql_errno($conn));
echo "verify_name other_names ssn dob";
$num_result = mysql_num_rows($QueryResult);
for ($i = 0; $i < $num_result; $i++)
{
$row = mysql_fetch_array($QueryResult);
$SQLstring2 = "SELECT AES_DECRYPT(ssn,'$key') FROM applications WHERE name='" . $row["name"] . "'";
$QueryResult2 = @mysql_query($SQLstring2, $conn) or die("Query Problem - "
. mysql_error($conn) . " - Error Number - " . mysql_errno($conn));
$num_result2 = mysql_num_rows($QueryResult2);
for ($j = 0; $j < $num_result; $j++){
$ssndecrypt = mysql_fetch_array($QueryResult2);
echo $ssndecrypt[0];
} echo $row["verify_name"];
echo $row["other_names"];
echo $ssndecrypt;
echo $row["dob"];
因此,而不是mysql_fetch_array()我應該使用什麼?原諒我的無知 - 我從來只有一個結果才能抓住。 – kaitlynjanine
@kaitlynjanine:'mysql_fetch_array()'不一定是錯誤的*方法,你只需要以正確使用結果的方式進行編碼。將'echo $ ssndecrypt [0];'行更改爲'$ ssndecrypt = $ ssndecrypt [0]';'可能會起作用,但它的可讀性較差並且更危險一點。 –
'爲($ I = 0; $ I <$ num_result; $ I ++)\t \t \t \t { \t \t \t \t $行= mysql_fetch_array($ QueryResult中); \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t $ SQLstring2 = 「SELECT AES_DECRYPT(SSN, '$鍵')AS解密來自應用程序,其中name ='」。 $ row ['name']。 「'」; \t \t \t \t \t $ QueryResult2 = @mysql_query($ SQLstring2,$ conn)or die(「...「); \t \t \t \t \t而($行= mysql_fetch_assoc($ QueryResult2)) \t \t \t \t \t { \t \t \t \t \t \t $ ssndecrypt = $行[ '解密']; \t \t \t \t \t}回聲「在此回顯的所有其他字段 - 其中有200個」; \t \t \t \t echo $ ssndecrypt;}'但新代碼擦除了我所有的輸出。我錯了嗎? – kaitlynjanine