金山快译:
警告: PDO::质问() [function.query]: SQLSTATE[HY000]: 普通错误: 2014不能执行质问当其他的unbuffered质问是活动的.考虑用PDOStatement::fetchAll().两者择一, 如果你的代码是唯一的曾经去到偶遇mysql, 你可能使能够质问缓冲器在设置PDO::MYSQL_ATTR_USE_BUFFERED_QUERY属性.在/var/www/html/web/action/RegisterAction.php在线41

解决方案 »

  1.   

    SQLSTATE[HY000]: General error: 2013 Lost connection to MySQL server during query
    英文能看懂,只是不知道怎么弄才正确
      

  2.   

    to xuzuning(唠叨) :-_-bit may means when you execute query in mysql,there is another mysql query executing.Try to create another user to run the codes in mysql or free the query result every time you finished run query or you can 在PDO类的MYSQL_ATTR_USE_BUFFERED_QUERY属性中启用查询缓冲(如果你的代码只运行在mysql上)
      

  3.   

    try {
                 try {
                     $pdo = new PDO(
                         "mysql:dbname=".Config::dbname.";host=".Config::dbhost.";charset=utf-8",
                         Config::dbuser,
                         Config::dbpw
                     );
                } catch (PDOException $e) {
                    die( $e->getMessage() );
                } 
           
                $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
                if ($pdo->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
                    $query = "call sp_set_simple_account(?,?,?,?,?,?,@user_id,@comp_id,@return_code)";
                    $stmt = $pdo->prepare($query,array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
                }
                $stmt->bindParam(1, $username);
                $stmt->bindParam(2, $pwdMD5);
                $stmt->bindParam(3, $compName);
                $stmt->bindParam(4, $compType);
                $stmt->bindParam(5, $email);
                $stmt->bindParam(6, $shareSpace);
                $result = $stmt->execute();
                if ($result == 1){
                    $row = $pdo->query("SELECT @user_id, @comp_id, @return_code")->fetchAll();
                    print_r($row);
                }else {
                    throw new PDOException('Could not execute query');
                }
                if ($row['@return_code'] != 0) {
                    throw new AppException('usernameDuplicated');
                }
           } catch(PDOException $e){
               echo $e->getMessage();
           } catch(AppException $e){
               echo $e->getMessage();
           }
      

  4.   

    $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);