让我提前道歉。我整天都在做这个项目,我很累,可能只是需要睡觉,但我似乎无法从函数连接到 mysql 数据库。
我有一个被调用的数据库文件,require_once()
并且有一个被调用的函数,但它似乎不想连接。
这是连接代码:
// Create connection
$con = mysqli_connect("$database_serverURL","$database_username","$database_password","$database_dbName");
// Check connection
if (mysqli_connect_errno($con))
{
$database_error = true;
$database_errorInfo = mysqli_connect_errno($con);
}
$database_error = false;
这是我的功能:
//Select from database
函数 selectFromDatabase($table_name){
//Declare array
$return_array = array();
//Make query
$result = mysqli_query($con,"SELECT * FROM $table_name");
while($row = mysqli_fetch_array($result)){
$return_array = $row[];
}
writeJson($return_array);
//close database connection
mysqli_close($con);
}
它说第一个参数为空,它应该是数据库连接信息。我知道我可以连接到数据库并从表中提取信息,但是当它在函数内部时它不想工作。
我尝试将连接数据设为全局,但没有奏效,我觉得这是个坏主意。
我觉得我应该更多地了解类系统和功能以及其他东西,但我只是希望它能够工作。
对不起,如果它就在我面前。我什至尝试将连接代码放在函数中,但仍然蹲着。
再次为这个愚蠢的问题感到抱歉。特别是因为它是关于连接到数据库的事实:P
编辑:
这是我第一次尝试创建面向对象的脚本。这是我的最终解决方案。
我有一个名为的配置脚本class_config.php
:
<?php
class declarations{
//Define variables
private $databaseArray;
//Populate variables
public function populateVariables(){
$this->databaseArray = array('databaseServer', 'databaseUsername', 'databasePassword', 'databaseName');
}
//Return variable requested
public function returnVariable($variable){
$this->populateVariables();
return $this->$variable;
}
}
?>
数据库类(class_database.php):
<?php
//Include config class
require_once('class_config.php');
function createInstance(){
//Create class instance
$obj = new declarations;
//Return class instance
return $obj;
}
function connectDB(){
//Create class instance
$obj = createInstance();
//Get database array from 'declarations' class
$databaseArray = $obj->getVariable('databaseArray');
//Create strings from array values
list ($serverURL, $username, $password, $databaseName) = $databaseArray;
//Create database connection
$con = mysqli_connect($serverURL, $username, $password, $databaseName);
//Return connection
return $con;
}
?>
每当我需要数据库连接时,我只需调用数据库连接函数。我会使用 $con = connectDB(); 创建一个实例 并在我的查询中使用 $con 。在我的项目中,我通常有一个执行所有查询并返回结果的函数:
function executeQuery($payload){
//Create database connection
$con = connectDB();
//Execute database query
$result = mysqli_query($payload);
//Return result
return $result;
}