在MySql中,如果IF()函数的第一个参数是一个字符串,为什么它返回false?
SELECT IF('string', 'string', 'not string'); -- 'not string'
Run Code Online (Sandbox Code Playgroud)
当然,如果我这样做,我可以解决这个问题
IF(!ISNULL('string'), 'string', 'not string')) -- 'string'
Run Code Online (Sandbox Code Playgroud)
要么
IFNULL('string', 'not string'); -- 'string'
Run Code Online (Sandbox Code Playgroud)
它似乎有点违反直觉,它以一种字符串的形式评估字符串
SELECT IF(1, 'one', 'not one'); -- 'one'
Run Code Online (Sandbox Code Playgroud)
和
SELECT IF('1', 'one', 'not one'); -- 'one'
Run Code Online (Sandbox Code Playgroud)
评估他们做的方式......
我试图懒惰加载一些广告服务器代码...
在页面上,我现在有这个:
<div class="ad">
<span>pos_1</span>
</div>
Run Code Online (Sandbox Code Playgroud)
然后我通过并删除应该在页面上的所有广告,调用他们的javascript包含文件,它给了我这个可爱的混乱:
function do_ad(pos){
switch(pos){
case 'pos_1':
document.write('first ad text');
document.write('first ad more text');
//and so on for many many lines
break;
case 'pos_2':
document.write('second ad text');
document.write('second ad more text');
//and so on for many many lines
break;
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我想用document.write广告调用的结果替换范围.
有没有办法让它返回本应写入页面的字符串?
今天在工作中有人试图说服我:
{$obj->getTableInfo()}
Run Code Online (Sandbox Code Playgroud)
适用于smarty/mvc/templating,因为它使用的是对象方法.我认为,因为它调用数据库它没有位置,它应该在控制器中(我们实际上不使用MVC).我是否正确理解MVC中使用的逻辑分离以及模板化中的逻辑分离?或者有什么我想念的东西?
我需要一种方法来判断用户是否是第一次登录 - 因此我可以向该用户显示他们需要做什么的相关信息.
怎么能实现这一目标?我在这里不知所措,我将不胜感激!:)
php ×2
codeigniter ×1
database ×1
if-statement ×1
javascript ×1
mysql ×1
smarty ×1
templating ×1