正在创建用于登录的连接方法的实例


Creating instance of a connection method for login use

我已经在我的方法中定义了我的连接。但是,我希望能够创建此连接的实例,以便在登录页面上使用。

通常情况下,我在页面上这样做的方式有插入、选择等。

$con = new dbclass(); //class where my methods are housed
$con-> createcon(); //create con has the connection handler, ($con=mysqli_connect(x.x.x.x)

公平地说,我经常用这个。然而,我在登录页面上的这个过程没有任何运气。这似乎不够。返回的错误为:

    Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, object given in C:'xampp'htdocs'a'login.php on line 103
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, object given in C:'xampp'htdocs'a'login.php on line 104
Warning: mysqli_query() expects parameter 1 to be mysqli, object given in C:'xampp'htdocs'a'login.php on line 109
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:'xampp'htdocs'a'login.php on line 111

这是一段返回错误的示例代码:

$user = mysqli_real_escape_string($con, $user);

到目前为止,我只在类中的更新方法上使用过real_escape_string。通过执行这个,我设法满足了real_escape_string上的连接处理程序要求

$esc_id = mysqli_real_escape_string($this->conn, $id);

所以我的问题是,我是否需要在登录页面上创建一个实例。如果是,怎么做?

$con=新dbclass();

但是你还没有向我们展示这个类的来源。

$con->createcon()//create-con具有连接处理程序($con=mysqli_connect(x.x.x)

这个评论没有任何意义。mysqli_connect()的返回值放在哪里?如果它在局部变量中,那么在方法返回后,它将不再可访问。它需要存储在某个地方,以便将其传递给mysqli_functions(),例如

class dbclass {
 var $dbhandle;
 function createcon() {
   $this->dbhandle=mysqli_connect(...);
 }
}
$con=new dbclass();
$con->createcon();
// then you can do....
$user = mysqli_real_escape_string($con->dbhandle, $user);
$user = mysqli_real_escape_string($con, $user);

在此代码中,您错误地使用了变量类。替换为以下代码:

$user = mysqli_real_escape_string($con->$con, $user);

类中的变量$con应为public