mysqli 连接不工作
mysqli connection not working
我有一个连接 class,它应该为我连接到数据库,但它不工作。
connection.php -
<?php
require_once "config.php";
class connection{
public static $db_con;
public function __construct(){
$this->db_con = new mysqli($server_name, $user_name, $password, $database_name);
if($this->db_con->connect_error){
echo "Connection falied for " . $this->db_con->connect_errno . "\n";
return $this->db_con->connect_errno;
}
else{
echo "Connection Successful";
return $this->db_con;
}
}
}
?>
我的config.php看起来像-
<?php
define("server_name", "localhost:8889");
define("database_name", "myStore");
define("user_name", "root");
define("password", "root");
?>
在我的索引页面中,我正在尝试通过
建立数据库连接
<?php
require_once "connection.php";
$db = new connection();
?>
我应该看到成功消息或错误消息,但我什么也没看到。总空白页。谁能帮帮忙
我正在根据 u_mulder 的建议更新文件,这解决了一个问题,但现在又出现了另一个问题。
现在我正在吃下面的错误-
注意:未定义变量:第 10 行 connection.php 中的 server_name
未定义变量:第 10 行 connection.php 中的 user_name
Class 构造函数通过 __construct
函数定义。
在旧的php版本中构造函数也可以命名为class名称,即connection
目前你的函数__connection
只是一个函数,而不是构造函数。将其重命名为构造函数或显式调用它:
$db = new connection();
$db->__connection();
此外,变量 $server_name, $user_name, $password, $database_name
在 connection
class 的范围内将不可用。您应该将它们作为参数传递给函数,或者将值声明为常量。
更新:
如果你把一些值定义为常量,如你所说:
define("server_name", "localhost:8080");
那么server_name
是常量名,应该用而不用 $
符号:
$this->db_con = new mysqli(server_name, user_name, password, database_name);
为了不将常量与变量混合,建议在 UPPER_CASE
中命名常量,例如:
define("SERVER_NAME", "localhost:8080");
将__connection更改为__construct
我有一个连接 class,它应该为我连接到数据库,但它不工作。
connection.php -
<?php
require_once "config.php";
class connection{
public static $db_con;
public function __construct(){
$this->db_con = new mysqli($server_name, $user_name, $password, $database_name);
if($this->db_con->connect_error){
echo "Connection falied for " . $this->db_con->connect_errno . "\n";
return $this->db_con->connect_errno;
}
else{
echo "Connection Successful";
return $this->db_con;
}
}
}
?>
我的config.php看起来像-
<?php
define("server_name", "localhost:8889");
define("database_name", "myStore");
define("user_name", "root");
define("password", "root");
?>
在我的索引页面中,我正在尝试通过
建立数据库连接<?php
require_once "connection.php";
$db = new connection();
?>
我应该看到成功消息或错误消息,但我什么也没看到。总空白页。谁能帮帮忙
我正在根据 u_mulder 的建议更新文件,这解决了一个问题,但现在又出现了另一个问题。
现在我正在吃下面的错误-
注意:未定义变量:第 10 行 connection.php 中的 server_name 未定义变量:第 10 行 connection.php 中的 user_name
Class 构造函数通过 __construct
函数定义。
在旧的php版本中构造函数也可以命名为class名称,即connection
目前你的函数__connection
只是一个函数,而不是构造函数。将其重命名为构造函数或显式调用它:
$db = new connection();
$db->__connection();
此外,变量 $server_name, $user_name, $password, $database_name
在 connection
class 的范围内将不可用。您应该将它们作为参数传递给函数,或者将值声明为常量。
更新:
如果你把一些值定义为常量,如你所说:
define("server_name", "localhost:8080");
那么server_name
是常量名,应该用而不用 $
符号:
$this->db_con = new mysqli(server_name, user_name, password, database_name);
为了不将常量与变量混合,建议在 UPPER_CASE
中命名常量,例如:
define("SERVER_NAME", "localhost:8080");
将__connection更改为__construct