不確定如何問這個問題。但我使用PhpStorm作爲我的IDE。PhpStorm不識別類別中的PDO方法
我創建了一個類來處理我的數據庫檢索和操作。在這裏面我有這樣的連接方法:
private function connect() {
$dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->db;
$options = [
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
];
try {
$this->conn = new PDO($dsn, $this->user, $this->pass, $options);
} catch(PDOException $e) {
$this->error = $e->getMessage();
}
}
的方法工作正常,但是當我去其他方法使用$this->conn
PhpStorm不承認$this->conn
作爲PDO
對象。
使用這種方法:
private function insert() {
$insert = $this->conn->prepare($sql);
$insert->execute();
}
PhpStorm說,它無法找到方法prepare
或execute
。
如果我通過$this->conn
到方法和參數使用PHPDoc的塊,它工作正常:
/**
* @param $conn pdo
*/
private function insert($conn) {
$insert = $conn->prepare($sql);
$insert->execute();
}
我很好奇,爲什麼它不會讓我用$this->conn
?雖然沒有更多的代碼將$this->conn
傳遞給該方法,但似乎有點多餘。
任何想法,我需要做什麼不同?
鑑於有每個人做常見的錯誤,這樣可以使一個有用的閱讀:[你的第一個數據庫包裝的兒童疾病(https://phpdelusions.net/pdo/common_mistakes)。例如,你處理異常的方式正在破壞這個偉大的功能。 –