我有兩個數組$oldInfo
和$newInfo
其中$oldInfo
是來自數據庫的現有數據,而$newInfo
是用戶輸入的信息。如果兩個特定的字段不同,我想在數據庫中輸入一個新行,如果這個字段與我剛剛更新的字段相同。比較字符串的意外結果
if($oldInfo['col'] != $newInfo['col']){
INSERT INTO ...
}
else
{
UPDATE WHERE ...
}
問題是if語句總是評估爲true。我在if語句中輸入了一個echo ... die()
命令來打印出這兩個值,它們看起來都一樣。 Old Info: 38mg/1, 20 New Info: 38mg/1, 20
有什麼具體關於字符串比較在PHP中我缺少什麼?這些值似乎是完全一樣的(實際上,$ oldInfo用於預先填充表單,因此它們應該是相同的),但if語句說它們不一樣。
在輸出值前加上引號。是否有額外的空間?在比較之前嘗試修剪字符串。 –
array_diff()可能更好 – krifur
我們需要更多的信息,但我的猜測是填充或字符編碼。此外,嘗試使用['strcmp'](http://php.net/manual/en/function.strcmp.php)'($ oldInfo ['col'],$ newInfo ['col')== 0' 。 –