我从7.0版本开始使用NetBeans,而且它是我最喜欢的PHP IDE,但今天我用它来做项目,它给我带来PDO代码完成的问题。 有两种情况,
1)如果我在同一页面上实例化PDO对象,则所有代码完成都是正确的。
2)但是当我将PDO对象保存在另一个文件中并且需要该文件时,代码完成不起作用。
实施例
1)
<?php
/**
* In this case the code completion works fine
*/
try {
$db = new PDO('mysql:host=localhost;dbname=tshop', 'root', 'mypass');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SOME SQL QUERY';
$result = $db->query($sql);
} catch (Exception $ex) {
$error = $ex->getMessage();
}
2
<?php
/**
* But in this case it doesn't work
*/
try {
require_once '../../includes/database_connection.php';
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SOME SQL QUERY';
$result = $db->query($sql);
} catch (Exception $ex) {
$error = $ex->getMessage();
}
提前感谢大家!
答案 0 :(得分:1)
添加评论应该可以解决我相信的问题:
try {
require_once '../../includes/database_connection.php';
/* @var $db PDO */
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SOME SQL QUERY';
$result = $db->query($sql);
} catch (Exception $ex) {
$error = $ex->getMessage();
}
如果我是这样说的话,我不打算在路上建立数据库连接,因为如果你不小心,很容易就会有多个连接偶然发生,这可能会超过最大连接数。