- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试访问我的 mysql 类中的某些函数时遇到问题。我必须连接到我的数据库的功能如下:
function connect_DB() {
$this->connection = mysql_connect($this->dbURL, $this->dbUser, $this->dbPass) or trigger_error('Connection failed: ' . mysql_error($connection), E_USER_ERROR);
$this->db = mysql_select_db($this->dbName, $this->connection) or trigger_error('Database selection failed: ' . mysql_error($db), E_USER_ERROR);
}
然后我使用这个创建我的 mysql 对象:
$dbConf = new StoreConfDB();
$dbConf->connect_DB();
现在我有一个函数可以从指定表中获取所有列名。代码:
function get_db_columns($table) {
global $dbConf;
print_r($dbConf->get_db());
$result = $dbConf->query_DB_resource('SELECT * FROM ' . $table);
for($i = 0; $i < mysql_num_fields($result); $i++) {
$meta = mysql_fetch_field($result, $i);
$fields[] = $meta->name;
}
mysql_free_result($result);
return $fields;
}
但是我收到错误,例如:
Warning: mysql_query(): 5 is not a valid MySQL-Link resource
如果我尝试从 mysql_query 调用中删除连接参数,我会得到:
Notice: Could not run query: No database selected in ...
现在我正在运行一个调试器并查明了问题所在(我认为)。当类工作时,连接变量设置为:resource id='5' type='mysql link'
但是当它从 get_db_columns()
函数内部调用 mysql 类中的查询函数时,连接变量是:resource id='5' type='Unknown'
所以即使两个连接变量应该是同一事物,连接变量也会以某种方式搞砸? (来自 $dbConf
)?我已经在 2 个不同的地方测试了这个功能,它在一个地方有效,而在另一个地方无效!请帮忙!
@footy:
$dbConf 上的 print_r 返回:
StoreConfDB Object ( [dbURL] => localhost [dbUser] => root [dbPass] => [dbName] => db1 [connection] => Resource id #5 [db] => 1 )
query_DB_resource 函数:
function query_DB_resource($query) {
$sql_query = mysql_query($query) or trigger_error('Could not run query: '. mysql_error());
return $sql_query;
}
最佳答案
我注意到几个问题:
您有 mysql_error($connection)
和 mysql_error($db)
。这些不是有效参数。在这两种情况下,您都应该使用 $this->connection
。这将为您提供更好的错误输出。
通常,将连接资源传递给 mysql_query
并不重要,但在这种情况下,您可能需要:mysql_query($query, $this->connection )
。虽然我不能说这是一个有保证的解决方案,但它可能会有所帮助。
哦,顺便说一句——每当有人使用 global
时,上帝都会杀死一只小猫。这是真的。他告诉我。要么就是我吃了一些不好的 Jade 米片。 (是的,我是这个问题的狂热者。这是件好事。相信我)
无论如何,如果您需要函数内部的变量,要么将其传入,要么创建一个新类的属性(将 StoreConfDB 设为单例?使其可通过工厂方法访问?您有多种选择)——避免 global 作为一种习惯可以消除一些叫做 unexpected side effects
的讨厌东西.
关于php - mysql_connect 问题,资源类型 'Unknown',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6702016/
我使用 PHP 连接到数据库没有问题,但是在我测试过的一些脚本中,我发现连接命令有细微差别。 @mysql_connect 和 mysql_connect 有什么区别? 我在编写自己的脚本时从未使用过
我让 phpMyAdmin 与 MAMP 一起运行,但我发现无法使用 mysql_connect()。 $_db_connect = mysql_connect("root", "localhost"
于是在本地做完了一个站点,一直在尝试着手把它转移到在线服务器上。这可能是一个非常愚蠢的问题,但我花了最后一个小时试图找到答案,但我做不到。所以这是在服务器上运行的一行 PHP 代码(用户名和密码已更改
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我对stackoverflow很陌生,所以如果我需要提供更多信息,请告诉我。 我的问题从今天早些时候开始,当时我尝试输入此代码 ALTER TABLE tbl_name CONVERT TO CHAR
你好, 是否可以在代理服务器后面使用 mysql_connect()。我正在尝试连接到一个外部数据库,它基本上位于我的托管服务器上。我支持我的大学代理人。 最佳答案 FWIK 并根据 mysql pr
我刚刚开始使用网络托管服务,并且对 PHP 和 MySQL 还不熟悉。我试图使用我在这里看到的视频 https://www.youtube.com/watch?v=gvGb5Z0yMFY作为向表添加行
这个问题已经有答案了: Why shouldn't I use mysql_* functions in PHP? (14 个回答) The mysql extension is deprecated
这个问题已经有答案了: Why shouldn't I use mysql_* functions in PHP? (14 个回答) The mysql extension is deprecated
因此,我尝试在本地计算机上进行开发,同时在远程服务器上使用一个数据库。 为此,我尝试更改 myql_connect 行。 来自 $con = mysql_connect("localhost", "u
我的连接遇到问题。我还为此用户完成了“授予全部” Warning: mysql_connect() [function.mysql-connect]: Access denied for user '
我有一个 cron 作业调用 PHP 脚本,导致出现以下错误消息。 警告:在命令行界面上使用密码可能不安全 在使用mysql_config_editor --login-path=foo --host
我最近安装了pthreads在我的机器(ubuntu 12.04 LTS 32位)中,此后 mysql_connect() 无法从终端运行(也通过 CRON JOB)。但随后通过浏览器工作正常。 我关
我目前正在运行一个亚马逊 EC2 实例来托管我的网站。我正在尝试连接到 MySQL 数据库。 我有代码... Test page 尝试加载此网页将导致无限加载符号。就好像无限循环正在运行。以下是一些
当创建@mysql_connect($server, $user, $password)的脚本死掉时会发生什么? 它能活多久? 谢谢! 最佳答案 Connections opened by mysql
根据 php 文档,“脚本执行结束后,到服务器的链接将立即关闭,除非通过显式调用 mysql_close() 提前关闭。” http://php.net/manual/en/function.mysq
我有以下问题。我们将 mysql 服务器移至另一台机器,因此 IP 发生了变化,但不知何故,系统日志机器上的脚本不会与新服务器通信。我将其精简为以下代码来模拟问题 我的脚本 $link = mysql
无论我选择什么数据库,每次使用 mysql_connect() 时我都会得到这个: 警告:mysql_connect() [function.mysql-connect]:无法连接到第 17 行 fi
我正在 apache2 (windows) 上使用 php5 测试与 mysql 5.1 的连接。 我已经根据教程创建了一个常规的 php 测试连接页面,但收到错误“mysql_connect”未定义
我有一个系统,该系统具有到本地服务器的全局开放 mysql 连接。在我的一个文件中,我打开了一个到远程机器的附加连接。 我没有尝试连接到那台机器,而是从我的 ISP 那里收到一条访问被拒绝的消息(它似
我是一名优秀的程序员,十分优秀!