我遇到了一个奇怪的行为,我无法在数据库中成功更新所有行。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次迭代? –