我的mysql连接有问题。我需要访问类中的连接。我该怎么做?即使我尝试在类中包含连接文件或连接变量$ con0,它也没有值,所以我收到错误。
Connection.php
<?php
$username = " ";
$password = "";
$hostname = " ";
$con = mysql_connect()
?>
model.php
<?php
include(connection.php);
class model{
function needTheConnection($uid){
$q = "SELECT x from DB.table WHERE id = '" . $uid . "'";
$res = mysql_query($q);
}
}
?>
这给了我“mysql_query():提供的参数不是一个有效的MySQL-Link资源”。
有什么问题?
谢谢, tinks
答案 0 :(得分:4)
您遗漏了部分代码。我们根据错误消息知道这一点。这一行:
$res = mysql_query($q);
在您的代码中可能实际上看起来像这样:
$res = mysql_query($q, $con);
我是对的吗?如果是这种情况,则问题是无法从该函数或类实例中访问$con
。在您的情况下解决这个问题的简单方法是简单地删除它。 MySQL客户端将自动使用您脚本中的最后一个连接。
但实际上,您应该考虑不同的设计模式。为了它的价值,我经常只将我的数据库资源粘贴在$GLOBALS['db']
中。这不是一种纯粹的OOP方式,但对于许多应用来说,它是合适的。
最后,$ 5表示你对SQL注入很开放。了解如何使用PDO进行准备好的查询,或至少在有人窃取您的整个数据库并将havok带到您的网站之前逃避您的数据。
答案 1 :(得分:1)
class model {
function __construct(&$db) {
$this->db=$db;
}
function needTheConnection($uid){
$q = "SELECT x from DB.table";
$res = mysql_query($q,$this->db);
}
}
$model = new model($conn);