我正在將PHP
應用程序從Ubuntu
服務器移動到AWS openSUSE
實例。
該應用程序在openSUSE框上不起作用。 API
對於任何具有$mysqli->insert_id
的呼叫都會失敗。使用$mysqli
的呼叫確實有效。
從閱讀我注意到,這通常會失敗,因爲auto_increment
未在數據庫列上實現。我從Ubuntu
託管的應用程序遷移了MySQL
數據庫。表格模式似乎是相同的。
我也看過服務器配置文件php.ini
等和MYSQLi
擴展似乎配置正確。
正是因爲這個原因,我認爲這是一個PHP相關的問題。任何幫助將不勝感激。
編輯:按要求提供更多信息。
失敗的每個API調用的一般結構是。
- iOS的發送POST到API
- 的API(建於PHP)插入信息到其中有一個主鍵自動遞增一個表。
- API然後使用$ case_id = $ mysqli-> insert_id ;,獲取此主鍵的值。
- 該值返回到iOS應用程序。
重要 - $ CASE_ID被返回爲0
您需要提供更多信息。什麼是您的查詢,您正在運行的查詢的表格模式是什麼。運行查詢的代碼是什麼,查詢運行後立即執行的代碼是什麼?我從來沒有聽說過'MySQLi :: $ insert_id'是一個問題,在php中。所以,直到進一步的信息 - 我的答案是PEBKAC。 –
你可以更改數據庫訪問代碼嗎?如是!然後移植到'PDO'。見'http://in1.php.net/pdo'。其他API即將過時! –
只是爲了排除它不是MySQL問題,它是一個PHP問題,你能提供更多關於如何從Ubuntu遷移數據庫的細節?您確定auto_increment設置已正確遷移嗎? – apokryfos