0

我正在为这个问题挠头:

当我将日志数据作为程序处理时,一切正常。我需要该文件一次,然后可以继续我的选择查询。但是,如果与 DB 文件的连接被写入为 OOP。我收到未选择数据库的错误

====

<?php

        // SETTING VALUES AS CONSTANTS

        DEFINE('DB_USER', 'root');
        DEFINE('DB_PASSWORD', '');
        DEFINE('DB_HOST', 'localhost');
        DEFINE('DB_NAME', 'tra');

        // CONNECTING JUST TO THE SERVER
        $dbc = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

        if (!$dbc)  // IF IT CAN'T CONNECT, ISSUE A MESSAGE
             {
                die('Could not connect: ' . mysql_error());
        }

        // CONNECTING NOW TO THE DB
        mysql_select_db("tra", $dbc);

    ?>

所以那里工作正常。我在一个单独的文件中得到了它,(在根路径之外)

但是,如果我尝试以 OOP 方式进行,那么一旦我有权访问数据库,其余的查询将无法正常工作。我有时将查询写为输出,我的意思是好像没有执行,只是纯文本:

   $mysqli = new mysqli("localhost", "root", "");
            $mysqli->select_db("tra");

我用 OOP 版本尝试了很多品种,首先分别实例化,例如

$mysqli = new mysli();
$mysqli->connect("127.0.0.1", "root", "", "tra");

或者也

$mysqli = new mysqli("localhost", "root", "");
$mysqli-> select_db("tra");

但是 OOP 的任何尝试都不起作用。我的意思是,我的腿上放着这本书,所以我正在逐字写它。问题必须在其他地方。

PHP 版本是 5.3.8 大约是最新的一个。

在连接和选择数据库之后的 sql 查询(如果连接文件是程序性的,如我所说)是:

$sql ="SELECT FName
                              FROM work_assignment, developer
                              WHERE developer.country = '".$country."'
                              AND work_assignment.from_language = '".$from."'
                              AND work_assignment.into_language = '".$into."'
                              AND work_assignment.developer_id = developer.developer_id

                              ";

关于为什么的任何想法?

非常感谢

4

1 回答 1

1

根据您的评论,我推测您正在混合使用 mysql 和 mysqli 扩展。它们是两个独立的扩展,没有任何共同之处,只是它们都连接到 MySQL。如果您使用 mysqli 对象连接到数据库,请使用该对象运行您的查询。mysql_query将没有活动连接,因为您没有使用 mysql 功能建立一个。

于 2012-05-25T08:42:33.110 回答