在我的项目中,需要更新mysql表值,所以当用户看到他/她的个人资料然后他/她可以更新他/她的个人资料,点击“更新个人资料”按钮后他/她会看到一个表格填写以前的数据,然后他可能会改变他的个人资料。我想检查他/她是否更新信息,因此我从数据库中获取该用户信息并检查他/她输入的当前信息,如果值更改,则将该更改的值存储在其他阵列上并仅存储该更改的信息。所以我使用strcmp(str1,str2)函数,但它不起作用,所以我使用“===”它只适用于小数据,如名称,密码等。但我还需要检查他/她是否改变他的/她的传记与否,我使用该功能,但它不起作用。
我的代码::
<?php
$users = $user->user_info_by_id($object->id); // get user's info from database
foreach( $users as $user ) { //
if( $user->user_name === $arrayValue['user_name'] ) // here $arrayValue['user_name'] is the recent info that user sent to update his profile
echo "<br /> value matched"; // it matched
else {
echo "<br /> value not matched";
}
if( $user->user_biography === $arrayValue['user_biography'] ) // it doesn't work, here 'user_biography' is 'text' type data in mysql database
echo "<br /> value matched";
else
echo "<br /> value not matched"; // answer is always 'value not matched'
}
?>
答案 0 :(得分:1)
strcasecmp
应该做的工作。我知道你在答案中提到过你尝试过strcmp并且它没有用,但是你没有提及或展示你是如何使用它的。
尝试:
if($user->user_biography === trim($arrayValue['user_biography']) != 0) {
// user_name changed.
} else {
//user_name did not change
}