我已經編寫了一個可在phpmyadmin中工作的SQL語句。我在同一臺服務器上有兩個數據庫,我使用INNERJOIN來連接它們,並獲得正確的結果。我正在建立這個在PHP中,迄今已經做了一些正常的查詢,並得到正確的結果。我有一個包括我的數據庫,這是連接到一個數據庫,現在我想連接到兩個,即時通訊不知道如何引用這在我的PHP SQL語句。有人可以請幫助。參考兩個帶有通過PHP連接的SQL數據庫
我有這個。
<?php
error_reporting(0);
include './includes/opendb.php';
extract($_POST);
$sql1 = mysql_query("SELECT f_clients.CLIENT_COMPANY, vtmastertrail.consultant, f_clients.CLIENT_CODE, vtcards.description, vtmastertrail.inspdate_start, vtmastertrail.inspdate_end, vtcards.typeofcard, vtcards.colour, vtcards.frequency, vtcards.priorityon, vtmastertrail.islive, f_clients.CLIENT_DEFAULTINSPECTIONSELL
FROM `f_clients`
INNER JOIN tcards.vtcards ON tcards.vtcards.client_code = f_clients.CLIENT_CODE
INNER JOIN tcards.vtmastertrail ON tcards.vtmastertrail.card_id = tcards.vtcards.id
WHERE tcards.vtmastertrail.consultant = '".$con_name."'
AND tcards.vtmastertrail.inspdate_start >= '".$from_date."'
AND tcards.vtmastertrail.inspdate_start <= '".$to_date."'");
echo "<table border='1' align='center'>
<tr>
<th>Consultant</th>
<th>Client Code</th>
<th>Client</th>
<th>Address</th>
<th>Inspection Start Date</th>
<th>Inspection End Date</th>
<th>Type Of T-Card</th>
<th>T-Card Colour</th>
<th>Frequency</th>
<th>Priority</th>
<th>Report Sent Out</th>
<th>Cost</th>
</tr>";
while($row = mysql_fetch_array($sql1))
{
echo "<tr>";
echo "<td>" . $row['consultant'] . "</td>";
echo "<td>" . $row['client_code'] . "</td>";
echo "<td>" . $row['title'] . "</td>";
echo "<td>" . $row['description'] . "</td>";
echo "<td>" . $row['inspdate_start'] . "</td>";
echo "<td>" . $row['inspdate_end'] . "</td>";
echo "<td>" . $row['typeofcard'] . "</td>";
echo "<td>" . $row['colour'] . "</td>";
echo "<td>" . $row['frequency'] . "</td>";
echo "<td>" . ($row['priorityon'] ? 'Yes' : 'No') . "</td>";
echo "<td>" . ($row['signedoff'] ? 'Yes' : 'No') . "</td>";
echo "<td>" . $row['CLIENT_DEFAULTINSPECTIONSELL'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
我基本上沒有從這個搜索結果。
這裏是我的db文件。
<?php
// ** database connection string
$conn = mysql_connect("localhost", "#####", "########") or die ('I cannot connect to the database because: ' . mysql_error());
// ** Tcards database
mysql_select_db ("tcards");
我改變了隱藏的憑據。我有另一個名爲'test'的數據庫,它是f_clients表的地方。這是在同一臺服務器上,並具有相同的登錄憑據。任何人都可以幫我嗎?
你絕對*做*不*要做'提取($ _POST);'永遠。這相當於「註冊全局變量」,因爲這是一個巨大的安全風險,所以從PHP中刪除。此外,您不應該將任何數據放入SQL查詢中,而不會被正確轉義。 – Ian
謝謝,我似乎修復了它,錯誤在我的查詢似乎在phpmyadmin工作,但不是在PHP中。感謝提取功能的建議。什麼會用來代替這個? – user2405796
您應該直接使用'$ POST' var,而不是按照您的方式將值放入SQL查詢中,請使用prepare語句。看看這個教程:http://markonphp.com/mysqli-select-prepared-statements/ – Ian