PHP在外部文件中调用类中的函数,语法?
发布时间:2020-12-13 21:56:04 所属栏目:PHP教程 来源:网络整理
导读:我有这个外部文件CreateConnection.php,它有一个类DBController及其以下函数. createconnection文件没有遇到任何错误. 里面的CreateConnection.php文件 ?phpclass DBController{ private $servername = "localhost"; private $username = "root"; private $p
我有这个外部文件CreateConnection.php,它有一个类DBController及其以下函数. createconnection文件没有遇到任何错误.
里面的CreateConnection.php文件 <?php class DBController { private $servername = "localhost"; private $username = "root"; private $password = ""; private $database = "mydatabase"; function mainConnect() { //call the function connectDatabase to $connect $connect = $this->connectDatabase(); //call the function selectDatabase $this->selectDatabase($connect); if(!$connect) { //Otherwise,prompt connection failed die("Connection failed: ".mysqli_connect_error()); } } function connectDatabase() { //Create connection $connect = mysqli_connect($this->servername,$this->username,$this->password); return $connect; } function selectDatabase($connect) { //Select database mysqli_select_db($connect,$this->database); } } ?> 在这个文件中,我包含了外部CreateConnection.php,但是我的’$connect’在调用mainConnect()函数时遇到了很多错误. <?php include("CreateConnection.php"); $DBHandler = new DBController(); $connect = $DBHandler->mainConnect(); //Get values from form LoginReminder.php file $username = mysqli_real_escape_string($connect,$_POST['username']); $password = mysqli_real_escape_string($connect,$_POST['password']); //Removes back slashes in input $username = stripcslashes($username); $password = stripcslashes($password); //Query the database for users $result = mysqli_query($connect,"select * from tablereminders where username = '$username' and password = '$password' "); //Error connection and query if (!$result) { printf("Error: %sn",mysqli_error($connect)); exit(); } ?> 我的语法是不正确的,因为我在提交表单时遇到了很多错误: 错误 Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli,null given in C:xampphtdocsWeb Php TutorialLoginProcess.php on line 8 Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli,null given in C:xampphtdocsWeb Php TutorialLoginProcess.php on line 9 Warning: mysqli_query() expects parameter 1 to be mysqli,null given in C:xampphtdocsWeb Php TutorialLoginProcess.php on line 15 Warning: mysqli_error() expects parameter 1 to be mysqli,null given in C:xampphtdocsWeb Php TutorialLoginProcess.php on line 20 解决方法
添加return $connect;在函数mainConnect(){的末尾,你很好.
但为什么你根本不使用OOP版本的MYSQLi? mysqli,OOP vs Procedural class DBController { private $db; private $servername = "localhost"; private $username = "root"; private $password = ""; private $database = "mydatabase"; function __construct(){ $this->db = new mysqli($this->servername,$this->password); $this->db->select_db($this->database); } function db(){ return $this->db; } } $connection = new DBController(); #now instead of using mysqli_query(); $connection->db()->query('SQL QUERY'); 并且只包含一个类的文件应该具有以下名称: 而不是CreateConnection.php更好的DBController.php 文件名听起来像包含它时会创建一个连接,但事实并非如此:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |