Я пытаюсь динамически устанавливать учетные данные для подключения к базе данных на основе того, кто входит в веб-страницу. Я уверен, что он не работает из-за того, что переменная $connectdb
не определена. Может кто-то, пожалуйста, проверить мой код и попытаться заставить его работать? Благодаря!PHP - глобальные переменные
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
$connectdb="";
class Main extends CI_Controller {
function __construct() {
parent::__construct();
echo $connectdb;
$this->load->database($connectdb);
$this->load->helper('url');
$this->load->library('grocery_CRUD');
}
public function index() {
if ($_POST["username"] == "root") {
global $connectdb="default";
}
if ($_POST["username"] == "user1") {
global $connectdb="user1";
}
if ($_POST["username"] == "user2") {
global $connectdb="user2";
}
$connect = @mysql_connect("localhost", $_POST["username"], $_POST["password"]);//won't display the warning if any.
if (!$connect) {
echo 'Server error. Please try again sometime. CON';
} else {
print("<a href=\"http://v-admindb/ci/index.php /main/employees?username=".$_POST["username"]."\">Employees</a>");
echo "<br>";
print("<a href=\"http://v-admindb/ci/index.php/main/visitors?username=".$_POST["username"]."\">Visitors</a>");
}//Just an example to ensure that we get into the function
// LOAD LIBRARIES
}
public function employees() {
$this->grocery_crud->set_table('employees');
$output = $this->grocery_crud->render();
$this->_example_output($output);
}
public function visitors() {
$this->grocery_crud->set_table('visitors');
$output = $this->grocery_crud->render();
$this->_example_output($output);
}
function _example_output($output = null) {
$this->load->view('our_template.php',$output);
}
}
Это не сработает. Что мне нужно сделать, это установить переменную с именем $ connectdb на основе имени пользователя на экране входа в систему (используя $ _POST ["username"]), затем используйте $ this-> load-> database ($ connectdb). Я попробовал перечислить несколько операторов if внутри конструктора, но это не сработало. – user2839568
Теперь я вижу в вашем коде вы можете использовать [grokery crud] (http://www.grocerycrud.com). Я пошел вперед и взял 8 секунд для поиска [google] (https://www.google.com/search?q=grocery+crud+multiple+databases) для вас: http://www.grocerycrud.com/forums/тема/420-отвеченные-кан-I-выключатели-базы данных / – stormdrain