PHP在外部文件中调用类中的函数,语法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP在外部文件中调用类中的函数,语法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2877字,纯文字阅读大概需要5分钟。
内容图文
![PHP在外部文件中调用类中的函数,语法?](/upload/InfoBanner/zyjiaocheng/746/6787a8d3872e45d38dd401c7b6951de7.jpg)
我有这个外部文件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()函数时遇到了很多错误.
Process.php文件
<?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: %s\n", mysqli_error($connect));
exit();
}
?>
我的语法是不正确的,因为我在提交表单时遇到了很多错误:
错误
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\Web Php Tutorial\LoginProcess.php on line 8
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\Web Php Tutorial\LoginProcess.php on line 9
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\Web Php Tutorial\LoginProcess.php on line 15
Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\Web Php Tutorial\LoginProcess.php on line 20
解决方法:
添加return $connect;在函数mainConnect(){的末尾,你很好.
但为什么你根本不使用OOP版本的MYSQLi?
class DBController
{
private $db;
private $servername = "localhost";
private $username = "root";
private $password = "";
private $database = "mydatabase";
function __construct(){
$this->db = new mysqli($this->servername, $this->username, $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
文件名听起来像包含它时会创建一个连接,但事实并非如此:)
内容总结
以上是互联网集市为您收集整理的PHP在外部文件中调用类中的函数,语法?全部内容,希望文章能够帮你解决PHP在外部文件中调用类中的函数,语法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。