我已经编写了一个可在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