我有一个使用 PHP 5 访问 MySQL 5 服务器上的 MyISAM 表的代码。查询看起来像这样:
SELECT CONCAT(fName1,' ',mName2,' ',lName3) AS userName
FROM users
WHERE level > 10
当没有填写mName时,我期望的输出是"fname lname",但实际上得到的是""(空字符串),返回的行数是正确的。我犯了哪些错误?PHP代码:
<?php
$result = mysql_query($the_above_query);
while ($result_row = mysql_fetch_assoc($result)) {
// do stuff with the name
// except I'm getting empty strings in $result_row['userName']
}
表结构中的相关部分:
CREATE TABLE users {
/* -snip- */
`fName1` varchar(50) default NULL,
`mName2` varchar(50) default NULL,
`lName3` varchar(50) default NULL,
`level` int(11) default 0,
/* -snip- */
} ENGINE=MyISAM DEFAULT CHARSET=utf8;
此外,这种方式(在MySQL中进行列拼接)是否可行,或者应该将列提取到PHP中进行连接?
结果发现我得到了一个NULL;PHP将返回的NULL和空字符串("")看作相似,您需要使用===进行比较以查看区别。