В настоящее время мне нужно подключиться к двум базам данных с помощью PHP и использовать результаты первого запроса, чтобы получить остальные данные, которые мне нужны из второй базы данных.
Поэтому для второго соединения мне нужно подключиться ко второй базе данных и выбрать состояние и zipcode, где результаты соединения 1 (клиент) равны первому в базе данных 2. Как мне это сделать?
<?php // check if the 'id' variable is set in URL, and check that it is valid if (isset($_GET['cd']) && is_numeric($_GET['cd'])) // get id value $id = intval($_GET['cd']); $results = $id; //Open a new connection to the MySQL server require "calendarconnect.php"; //chained PHP functions $client = $mysqli->query("SELECT client FROM appointments WHERE ID = $results")->fetch_object()->client; print $client; //output value $mysqli->close(); ?>
Подключение к коду базы данных аналогично приведенному ниже
<?php //Open a new connection to the MySQL server $mysqli = new mysqli('localhost','some database','some password','some username'); //Output any connection error if ($mysqli->connect_error) { die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); } ?>
Это не проверено, но я думаю, что все будет так.
<?php $dbc1 = new MySQLi()or die('error connecting to database'); $dbc2 = new MySQLi()or die('error connecting to database'); //build query 1 $query1 = "SELECT * FROM Table"; $result1 = $dbc1->query($query) or die("Error in query"); $thing1 = ''; // check result if($result1->num_rows){ //fetch result as object $row = $result1->fetch_object(); //set attributes $thing1 = $row->Name; } //build query 2 $query2 = "SELECT * FROM AnotherTable WHERE Id = '$thing1'"; $result2 = $dbc2->query($query) or die("Error in query"); $thing2 = ''; // check result if($result2->num_rows){ //fetch result as object $row = $result2->fetch_object(); //set attributes $thing2 = $row->Name; } ?>
Вам нужно будет сделать 2 разных соединения
<?php $mysqliDB1 = new mysqli('localhost', 'DB1UserId', 'pwd', 'db1'); $mysqliDB2 = new mysqli('localhost', 'DB2UserId', 'pwd', 'db2');
Теперь, когда вы используете $mysqliDB1->....
вы говорите с базой данных DB1, и когда вы используете $mysqliDB2->....
вы говорите с базой данных DB2
Так
$client = $mysqliDB1->query("SELECT client FROM appointments WHERE ID = $results") ->fetch_object(); $locn = $mysqliDB2->query("SELECT state,zipcode FROM location WHERE ClientID = {$client->FirstName}") ->fetch_object(); echo $locn->state; echo $locn->zipcode;
Я угадываю имя таблицы и так далее, но я не clarevoyant, поэтому вам придется заполнить это для себя.