あらかじめお詫び申し上げます。私は一日中このプロジェクトに取り組んでおり、疲れていて、おそらく睡眠が必要なのですが、関数から 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);
}
最初のパラメーターは null であり、データベース接続情報であるはずです。データベースに接続してテーブルから情報を取得できることはわかっていますが、関数内にある場合は機能しません。
接続データをグローバルにしようとしましたが、うまくいきませんでした。それは悪い考えだと感じています。
クラスシステムや関数などについてもっと学ぶべきだと思いますが、これを機能させたいだけです。
目の前だったらごめんなさい。関数内に接続コードを入れてみましたが、それでもしゃがみます。
またバカな質問ですみません。特に、データベースへの接続に関するものであるという事実のために: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 を使用するだけです。私のプロジェクトでは、通常、すべてのクエリを実行して結果を返す関数が 1 つあります。
function executeQuery($payload){
//Create database connection
$con = connectDB();
//Execute database query
$result = mysqli_query($payload);
//Return result
return $result;
}