第一种方法:

select (@i:=@i+1) as i,table_name.* from table_name,(select @i:=0) as it ;

第二种方法:

set @rownum=0;
select @rownum:=@rownum+1 as rownum, t.username from auth_user t limit 1,5;

如果你的用户访问量较少, 比如你24小时访问一次你的站点 , 可能会出现 send of 5 bytes failed with errno=32 Broken pipe in

这只是一种可能 . 几率很小

如果出现此错误 请到网站根目录/Conf/config.php

打开文件找到

//PDO配置
    'SQL_OPTION' => array(
        PDO::ATTR_CASE => PDO::CASE_NATURAL,
        PDO::ATTR_PERSISTENT => true //长连接
    ),

改为:

//PDO配置
    'SQL_OPTION' => array(
        PDO::ATTR_CASE => PDO::CASE_NATURAL,//把长连接此项删除即可
    ),

原因:

长连接是一种缓存句柄, 他可以让服务器减少产生MYSQL链接, 然而如果你的网站程序很久未使用 MYSQL句柄将会断开, 但 缓存句柄仍然存在, 从而网站会调用一个已经废弃的句柄, 导致通信管道不存在, 产生此错误!

这是一个悲哀的站长故事,因为他没用户

function numToWord($num)
{
    $chiNum = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
    $chiNum['-'] = '负';
    $chiNum['+'] = '正';
    $chiUni = array('', '十', '百', '千', '万', '亿', '十', '百', '千');
    $num_str = (string)$num;
    $count = strlen($num_str);
    $last_flag = true; //上一个 是否为0
    $zero_flag = true; //是否第一个
    $temp_num = null; //临时数字
    $chiStr = '';//拼接结果
    if ($count == 2) {//两位数
        $temp_num = $num_str[0];
        $chiStr = $temp_num == 1 ? $chiUni[1] : $chiNum[$temp_num] . $chiUni[1];
        $temp_num = $num_str[1];
        $chiStr .= $temp_num == 0 ? '' : $chiNum[$temp_num];
    } else if ($count > 2) {
        $index = 0;
        for ($i = $count - 1; $i >= 0; $i--) {
            $temp_num = $num_str[$i];
            if ($temp_num == 0) {
                if (!$zero_flag && !$last_flag) {
                    $chiStr = $chiNum[$temp_num] . $chiStr;
                    $last_flag = true;
                }
            } else {
                $chiStr = $chiNum[$temp_num] . $chiUni[$index % 9] . $chiStr;
                $zero_flag = false;
                $last_flag = false;
            }
            $index++;
        }
    } else {
        $chiStr = $chiNum[$num_str[0]];
    }
    return $chiStr;
}
$num = -44;
echo numToWord($num);

输出

负四十四