php if语句总是返回false

php if语句总是返回false,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我知道这是一个非常基本的问题,但我完全不知所措。我已经为此工作了两天。if语句总是返回false。我尝试过===和==并复制到$array和fetch$result循环之外的进程。我把它比作一个直接的“名字”。我已经输出了返回字符串的每个字母的ascii值,并以这种方式进行比较,以确保我没有在某处放置空格或其他内容。我尝试了mysql和mysqli的方法。我尝试过OO风格和过程风格,但问题是,这段代码是从我自己的网站上复制粘贴的,在我的网站上的其他三个程序中都能正常工作 <?php SES

我知道这是一个非常基本的问题,但我完全不知所措。我已经为此工作了两天。if语句总是返回false。我尝试过===和==并复制到$array和fetch$result循环之外的进程。我把它比作一个直接的“名字”。我已经输出了返回字符串的每个字母的ascii值,并以这种方式进行比较,以确保我没有在某处放置空格或其他内容。我尝试了mysql和mysqli的方法。我尝试过OO风格和过程风格,但问题是,这段代码是从我自己的网站上复制粘贴的,在我的网站上的其他三个程序中都能正常工作

<?php
SESSION_START();
if(!isset($_SESSION["uname"])){
require ('redirect.html');
die();
}// session is set close
$uname = $_SESSION["uname"];

$user_name = "xxxxxx";
$password = "xxxxxxx";
$database = "usersdata";
$server = "xxxxxxxxxx.ipagemysql.com";


$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);

if ($db_found) {

$SQL = "SELECT * FROM messages";
$result = mysql_query($SQL);

while ( $db_field = mysql_fetch_assoc($result) ) {

//echo out values for visual comparison
echo $db_field['recipient']." ".$uname." ";

if($db_field['recipient'] === $uname){echo " match ";} else {echo " no match ";}

}// while loop db_field close
}// if db_found loop close

mysql_close($db_handle);

?>


正如我所说的,这段代码在这个站点上运行的其他三个程序中运行得很好。我所做的只是复制粘贴并更改数据库和字段。我甚至试着从头开始重新打字,只是为了确定。帮帮我,我正在融化……

为什么你要返回所有消息,然后在名称匹配的情况下与每条消息进行比较。您只需将where子句添加到查询中即可

SELECT * FROM messages WHERE recipient='uname value here'

然后可以检查返回的行数。如果返回0行,则不存在匹配。

echo$db_字段['recipient']中得到的内容。“$uname.”
会话启动()不@Fred ii-那没关系。PHP函数名不区分大小写。@Hanky웃潘基,我站起来纠正。一个人永远不会停止学习;-)<代码>变量转储($会话[“uname”])
变量转储($uname)查看正在传递的内容。我猜,它是空的。
WHERE
子句很有意义,因为OP没有任何(列)可以匹配。是的,这个代码就像买10000个苹果回家,然后拿起一个125.10克的苹果。为什么不把那个规格告诉店主,然后只买那个,对了。另外,只要一个坏苹果就能毁掉一切;-)这是条带化的代码,因此我可以进行基本操作。每当我遇到一个我无法解决的问题,我就把它去掉,直到找到原因。我想我刚刚找到了它。我只是通过我的php管理员在数据库中输入了一条消息,结果是真的。所以它必须在插入步骤中。