將$ _SERVER數組插入MySQL並將其選中並恢復到PHP數組的最佳方式是什麼?使用PHP和MySQL插入和檢索服務器變量
由於存在$ _SERVER數組元素的大型擴展列表,我首先想要序列化完整數組並將數據作爲類型「text」存儲在MySQL中。如果個別元素存儲在不同的字段中,這將避免許多NULL值。因爲它只是使用一個文本字段。我認爲這樣更有效率。
當我使用json_encode將數組存儲在MySQL中,然後在恢復它時使用json_decode時,我必須使用str_replace轉義斜槓。
使用str_replace很麻煩,並且告訴我,如果我忽略需要轉義的字符,這可能會導致問題。一定會有更好的辦法。
請注意,我存儲在MySQL中的所有數據總是首先通過mysql_real_escape_string函數傳遞,這也發生在這裏。
我嘗試序列化/反序列化之前我試過json_encode/json_decode。我不得不放棄序列化/反序列化,因爲從MySQL中選擇數據後,PHP數組是空白的。我發現在$ _SERVER上使用serialize/unserialize而不將它存儲在MySQL工程中。我現在使用BLOB而不是TEXT。 – 2014-11-04 13:12:32
使用mysqli或PDO中的'prepared statements'。這樣,序列化的數據不會因文本處理而受到影響。並使用BLOB而不是TEXT – David162795 2014-11-04 13:14:50
我想我可能在使用序列化/反序列化時發現了問題。從MySQL檢索數據時我使用了反斜槓。在移除這個函數時,通過反序列化來放置數據導致PHP數組被填充。感謝您的幫助。我怎麼在這裏相信你? – 2014-11-04 13:31:15