【问题标题】:NetBeans 8.2 PHP Code Completion IssueNetBeans 8.2 PHP 代码完成问题
【发布时间】:2018-06-25 19:15:59
【问题描述】:

所以我一直遇到 NetBeans 代码完成问题。我目前正在尝试建立一个可以在其他文件中使用的数据库连接。在我的 connection.php 文件中,我可以访问所有常用的数据库方法。我的最终目标是为我的查询使用准备好的语句。

但是,当我在我的 register.php 文件中,顶部需要 connection.php 时,突然代码完成不再起作用。我得到了通用弹出窗口。这是我想实际使用那些准备好的语句的文件。我还想避免必须在每个文件中打开一个新连接。

所以我的问题是,是我还是 NetBeans?

连接.php

$host = "localhost";
$username = "root";
$pass = "password";
$database = "LoganWebsiteUserLogin";

try {
    $conn = new PDO('mysql:host=localhost;dbname=' . $database . ';charset=utf8mb4', $username, $pass);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected Successfully!";
} catch (PDOException $e) {
    echo "Connection failed! " . $e->getMessage();
}

注册.php

<?php 
require 'connection.php';

// Create session variables
$_SESSION['firstName'] = $_POST['firstName'];
$_SESSION['lastName'] = $_POST['lastName'];
$_SESSION['email'] = $_POST['email'];


// trying to access $conn from connection.php here, however autocomplete for 
// it is not working. NetBeans doesn't know that $conn is a PDO
$conn->

【问题讨论】:

  • 文件register.php中$conn来自哪里?
  • 我已经在代码中添加了。基本上我正在尝试在我的 register.php 文件中访问我在 connection.php 中创建的数据库连接。在 connection.php 中,NetBeans 知道 $conn 是一个 PDO,并将自动完成所有关联的方法。但是,在 register.php 中,NetBeans 不知道 $conn 的类,因此我的自动完成功能无法正常工作。

标签: php netbeans autocomplete


【解决方案1】:

它在 PhpStorm 中有效,但在 Netbeans 中无效。但无论如何,不​​推荐使用全局变量,这会导致不必要的副作用。也许尝试不同的方法。

例子:

连接.php

<?php

function db(): PDO
{
    static $pdo = null;
    if (!$pdo) {
        $host = "localhost";
        $username = "root";
        $password = "password";
        $database = "LoganWebsiteUserLogin";

        $options = [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_PERSISTENT => false,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci",
        ];
        $pdo = new PDO("mysql:host=$host;dbname=$database;charset=utf8mb4", $username, $password, $options);
    }
    return $pdo;
}

注册.php

<?php

require_once __DIR__ . '/connection.php';

// Create session variables
$_SESSION['firstName'] = $_POST['firstName'];
$_SESSION['lastName'] = $_POST['lastName'];
$_SESSION['email'] = $_POST['email'];

// Works :-)
db()->

【讨论】:

  • 你是一个救生员:D
猜你喜欢
  • 2018-08-01
  • 2014-09-25
  • 1970-01-01
  • 1970-01-01
  • 2017-05-04
  • 2010-12-04
  • 2011-04-06
  • 1970-01-01
  • 2012-07-30
相关资源
最近更新 更多