我有 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 和空字符串 (""),您必须与 === 进行比较才能看到差异。