我有一个通过html表单发布的变量:
$_POST['ref']
从数据库中的表中提取的变量:
$row['ref']
我有一个基本的比较脚本来检查它们是否相同:
$ref = $_POST['ref'];
$result = mysql_query("SELECT * FROM logbook.job");
if (!$result) {
die("Query to show fields from table failed");
}
$row = mysql_fetch_array($result);
$refdb = $row['ref'];
$refform = $_POST['ref'];
echo $_POST['ref'] ."<br>". $row['ref'] . "<br><br>";
if ($refdb == $refform) {
echo "Yes they are<br><br>";
}
else {
echo "No they are not<br><br>";
}
if (is_string($_POST['ref']))
{
echo "Yes";
} else {
echo "No";
}
echo "<br>";
if (is_string($row['ref']))
{
echo "Yes";
} else {
echo "No";
}
哪个输出:
G2mtxW
G2mtxW
No they are not
Yes
Yes
我回应了他们。比我问他们是否一样。然后我检查每个是否是一个字符串。
为什么他们不一样?我怎样才能让它们匹配
任何帮助将不胜感激
答案 0 :(得分:12)
尝试使用String的二进制安全比较:
result = strcmp($str1, $str2);
如果结果为0,则两者都相同。否则,他们不是。
答案 1 :(得分:7)
您的一个字符串(可能是数据库中的一个字符串)可能以空值终止。我测试了以下
$foo = "abc\0";
$bar = "abc";
echo "$foo\n$bar\n";
if($foo == $bar)
echo "Equal.";
else
echo "Not equal."
输出
abc
abc
Not equal.
答案 2 :(得分:2)
尝试var_dump
两个值,检查它们的长度并使用view-source检查它们。它们在某种程度上是不同的。
答案 3 :(得分:0)
echo $status_message;
echo "Accepted";
if(strcmp($status_message,"Accepted")==0)
{
echo "equal";
}
else
{
echo "not equal";
}
?>
$ row ['status']是表中的字段