PHP:在MYSQL数据库中使用布尔变量逻辑的语法
php/mysql noob问题。 MYSQL似乎没有存储布尔值的首选方式。我根据留言板上的某个人的建议,决定与Tiny(int)一起使用,他们说这相当于True/False。我会认为True = 1和False = 0 ...也许这是假设...无论如何,将1个值放在mysql dbase中进行测试。他们在phpAdmin中显示为“1”,表示值得。PHP:在MYSQL数据库中使用布尔变量逻辑的语法
我想检索这些值,如果TRUE显示图片,如果为false,则不显示它。因此,与质数据库连接和运行,返回其他文本值细成功的查询后,我写了...
if ($row['email'] == TRUE)
{
echo "<img src='images/email.png'>";
}
或者代替真的,我已经试过1,“1”“1”“TRUE”等
如果我只是echo $ row('email'),我得到1.但是,上述逻辑不起作用。这种情况绝不意味着图像永远不会显示。我试着用!=来转动它,但仍然无法使它工作。从我读过的内容来看,MYSQL中的布尔值可能有点片面,但这看起来很基本。
注意。使用上面的代码,没有错误。它从来没有评估括号中的陈述是正确的以执行条件。它可能是一个语法错误?或者我错过了什么。
感谢您的任何建议!
如果我正确理解您的使用
if($row['email'] == 1){
echo "<img src='your-path.jpg'></img>";
}else{
// do nothing if false
}
我决定用微小(INT)去
这就是它的究竟是如何被世界各地数百万来完成。
我倒觉得真= 1,假= 0
这是你应如何解释它。
if ($row['email'] == TRUE)
不起作用
这绝对应该工作,可以用简单的测试:
$row['email'] = '1';
echo $row['email'] == true; // output: 1
仔细检查$行的内容,即var_dump($row)
保证数据正在从数据库中正确收集。检查从数据库返回的任何错误。此外,通过在你的脚本的顶部放置此检查由PHP返回的错误:
ini_set('display_errors', 1);
error_reporting(E_ALL);
谢谢大家事实证明,这是我的一个愚蠢的错误,试图评估声明后,我已经关闭了错误的数据提取}。通过移动支架来修复它。 TRUE没有引号的作品。 – user1260310 2012-03-13 21:58:16
我用枚举,因为他们在某些情况下更具有可读性;特别是在处理旧桌子时。
也就是说,“isDeleted”可以具有1/0值或作为枚举,“是/否”或甚至更好:“活/删除”。
这三个描述的都是同一个状态,但最后一个例子会让你更加沉重。
唯一复杂的输入,但是,布尔值是所有的祸根是HTML反正。 MySql查询保存相当明智:
mysql_query(sprintf(
"update table set isDeleted='%s' where id=3",
($myvalue === true ? 'Live' : 'Deleted')
));
var_dump($ row ['email'])''结果是什么? – webbiedave 2012-03-13 21:40:12
在'if'之前加上'echo'。 – 2012-03-13 21:40:55