【发布时间】:2016-12-26 19:07:00
【问题描述】:
我有这个外部文件 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
【问题讨论】:
-
$connect不在Mainconnect()函数中返回 -
应该在
mysqli_real_escape_string之后使用stripcslashes吗?密码也应该被散列。 -
如果
$connect存在于 mainConnect() 中,则返回它。