【问题标题】:Phpstorm code completion not working on php methodsphpstorm代码完成不适用于php方法
【发布时间】:2014-12-18 10:01:31
【问题描述】:

由于某些原因,代码完成担心原生 php 代码,例如 bind_param()、prepare() 和 execute()。我收到此警告:在课堂上找不到方法“bind_param”。有什么问题?

if ($this->comparePassword ( $password, $confirmPass )) {

            // Generating password hash
            $password_hash = PassHash::hash ( $password );

            // insert query
            $stmt = $this->conn->prepare ( "INSERT INTO seeker(first_name, last_name, email, password, parish) values(?, ?, ?, ?, ?)" );
            $stmt->bind_param ( "sssss", $fName, $lName, $email, $password_hash, $parish );

            $result = $stmt->execute ();

            $stmt->close ();

            // Check for successful insertion
            if ($result) {
                // User successfully inserted
                return USER_CREATED_SUCCESSFULLY;
            } else {
                // Failed to create user
                return USER_CREATE_FAILED;
            }
        } else {
            return PASSWORDS_DO_NOT_MATCH;
        }
    } else {
        // User with same email already existed in the db
        return USER_ALREADY_EXISTED;
    }

这是自定义类的代码

class DbConnect {

private $conn;

function __construct() {        
}

/**
 * Establishing database connection
 * @return database connection handler
 */
function connect() {
    include_once dirname(__FILE__) . './Config.php';

    // Connecting to mysql database
    $this->conn = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME); //EDIT TO BE PDO

    // Check for database connection error
    if (mysqli_connect_errno()) { //EDIT TO BE PDO
        echo "Failed to connect to MySQL: " . mysqli_connect_error(); //EDIT TO BE PDO
    }

    // returning connection resource
    return $this->conn;
}

}

【问题讨论】:

  • 代码工作正常,但由于某种原因代码完成无法正常工作。它适用于其他所有东西,例如 zend、sublime 等。
  • 你看到我上面给你的链接了吗?
  • 不是应该从解释器中获取原生的php方法吗?
  • 已经阅读它只会告诉编辑器不要将其显示为警告。它不会使 php 方法的自动完成工作

标签: php phpstorm


【解决方案1】:

显然,在我的 DbConnect 类中,我的 PHPDoc cmets 声明我正在返回“数据库”,而实际上我正在返回一个“mysqli”数据类型。这就是导致错误的原因。解决此问题的简单方法是将 PHPDoc 注释更改为“mysqli”,代码完成再次开始工作。

【讨论】:

    【解决方案2】:

    @return database connection handler 注释告诉 PhpStorm 您正在返回一个类型“数据库”。您实际上是在返回一个 'mysqli' 对象,因此您应该将注释设为 @return mysqli the database connection handler

    【讨论】:

      猜你喜欢
      • 2016-10-13
      • 2022-01-02
      • 2016-10-28
      • 1970-01-01
      • 2012-09-22
      • 2011-11-15
      • 2017-08-22
      • 1970-01-01
      • 2018-07-31
      相关资源
      最近更新 更多