我遇到了一個奇怪的行爲,我無法在數據庫中成功更新所有行。PHP:mySQL:無法更新數據庫中的所有行。表正在部分更新
我有一個PHP網頁,顯示從MYSQL中獲取它後的一些數據。該網頁還爲用戶提供了靈活性以進行任何編輯,並且在進行更改並單擊「更新」按鈕後,文本框中的值將在數據庫中更新。 我得到的問題是,只有前60行正在更新,而不是全部177.
這是一個小型網頁,具有用戶進行更新後的值。可以說,用戶更新了Rihaana給Eminem。
ID FieldText
01 Slim Shady
02 Dr. Dre
05 Rihaana -->> 'Eminem'
使用AJAX,我已經將json文件發送到php文件,我在這裏提取值並在數據庫中更新它。 我的JSON看起來像:
array(2) {
["fieldText"]=>
array(177) {
[0]=>
string(55) "Slim Shady"
[1]=>
string(24) "Dr Dre"
[2]=>
string(27) "Eminem"
}
["ID"]=>
array(177) {
[0]=>
string(1) "1"
[1]=>
string(1) "2"
[2]=>
string(1) "5"
}}
生成的JSON是有效的。 JSON的實際長度爲
一旦JSON被髮送到PHP文件,我分裂JSON代碼到2個陣列和長度兩個陣列中的177
現在我下一步是爲每個ID,我正在獲取字段文本,並希望在數據庫中更新它。現在
$jsonData = json_decode($_POST['postData'],true);
$length = count($jsonData['ID']); ## The length is 177 in my json
$ID = $jsonData['ID']; ## The length is 177 in my json
$fieldText = $jsonData['fieldText']; ## The length is 177 in my json
,用下面的代碼,我使用的循環更新所有的值的行中,但這種循環運行60次迭代不僅沒有177(預期):
for($j=0; $j< count($jsonData['ID']); $j++) {
$langText = $fieldText[$j];
$id = (int) $ID[$j];
$update = "UPDATE languageUpdate SET fieldText = '$langText'
WHERE ID = $id";
//echo "$update";
$mysqli->query($update) or die(mysql_error());}}
我試着做調試,但無法做到。有人可以幫忙嗎?
嘗試在for循環 –
我這樣做,以及更換「計數($ jsonData [‘ID’])」與「$長度」,但不工作 – user4943236
你能解釋你如何知道只有60次迭代? –