2015-04-14 52 views
2

我有一個在ActionScript 3中創建的遊戲,它使用MySql數據庫/ PHP來存儲和重新加載玩家登錄之間的遊戲狀態。我有字符串(varchars),整數,大整數等被保存。在我的本地WAMP服務器上,這看起來很完美。但是,在上傳時,我的主機數據庫不會存儲字符串。它將存儲用於登錄/註冊(用戶名,電子郵件等)的字符串,但不包含爲某些遊戲數據創建的字符串(遊戲角色的顏色,性別,髮型,鞋子等都存儲爲一個長字符串)。 我有一個php文件處理登錄和註冊,第二個處理所有遊戲存儲/加載,再加上一些AS3接口類與這個php文件交談。但同樣的AS3類/ PHP文件將成功存儲整數等,同時未能存儲字符串數據。 我檢查了列名,並且本地數據庫和主機數據庫是相同的,並且在有某種排序規則問題的情況下,將所有字符串字段的排序規則設置爲utf8_bin。我對數據庫的新...遠程數據庫不會存儲一些字符串vs成功的本地數據庫(MySql - phpMyAdmin)

在PHP我用的是這樣的:

$id=$_POST['userId']; 
$value1=$_POST['array1']; 
$value2=$_POST['array2']; 
$what=$_POST['action']; 
if ($what === 'storeStuff'){ 
mysqli_query($db,"UPDATE mytableName SET field1=$value1, field2=$value2 WHERE userid='$id'") or exit("systemResult=fail"); 
exit("systemResult=success"); 
} 

這裏的字符串信息在我的本地數據庫表中成功地被保存類型的例子,但是這給我在我的託管數據庫上的'systemResult = fail':

0,1,0|0,0,3|0,1,0|0,1,1 

任何想法是怎麼回事? 謝謝。

+0

通常,對於字符串,它們需要用單引號引起來,整數不需要。我注意到你有這些逆轉;你能證實這些信息嗎? – nomistic

+0

在從代碼執行之前回應查詢,並嘗試在兩個DB上手動執行它。 –

回答

0

我在'打電話給朋友'後解決了我的問題,他建議我查看'魔術引號'問題,並添加一些代碼以檢查它們是否在主機服務器中打開,如果是,請關閉。他是對的。原來,這是引起問題的字符串之間的引號,因爲不同的服務器配置/版本會導致不同的結果。爲了確保獨立於服務器配置/版本的一致結果,我使用了php.net手冊中提供的解決方案。

以下是我使用的鏈接,其中包含了識別其狀態並禁用它們所需的代碼。
http://php.net/manual/en/security.magicquotes.disabling.php

相關問題