我对这个问题挠了挠头:
当我将日志记录数据作为过程时,一切正常。我需要该文件一次,然后可以继续我的选择查询。但是,如果与数据库文件的连接写入为 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
";
关于为什么的任何想法?
多谢
从你的评论中,我推测你正在混合mysql和mysqli扩展。它们是两个独立的扩展,除了它们都连接到MySQL之外没有任何共同点。如果使用 mysqli 对象连接到数据库,请使用该对象运行查询。 mysql_query
将没有活动连接,因为您没有使用 mysql 函数建立连接。