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