我想填充三个PHP值,它将在数据库中搜索特定表(table_2
),该数据库中的名称与其中一个从同一个数据库中的单独表格(table_1
)中删除列(我已将其分配给php值$cscomp
)。正在搜索特定的SQL表,然后搜索此结果中的行
然后,我需要根据与列值中的日期匹配的当前日期,调用它所找到的选定表中的特定行的所有信息。
我已经从值填充在table_1
在前面的SQL搜索的正常工作下面的PHP领域:$cscomp, $csship
,
我想的PHP是以下:
1 <?php
2 $a = "";
3 $b = "";
4 $c = "";
5 $sql = "SELECT table_name FROM information_schema.tables WHERE table_name='$cscomp'";
6 $ship_select = mysqli_query($db_conx, $sql);
7 $date_select = "SELECT * FROM $ship_select WHERE shipdate = CURRDATE() AND csship='$csship' LIMIT=1";
8 while ($row = mysqli_fetch_array($date_select, MYSQLI_ASSOC)) {
9 $a = $row["port"];
10 $b = $row["arrtime"];
11 $c = $row["deptime"];
12 }
13 ?>
我得到的错误返回是:
Catchable fatal error: Object of class mysqli_result could not be converted to string.
这与上述第7行有关。我认为这是找到正确的表,但是没有得到我需要的行值。有什么建议么?
您需要参数化您的查询。这看起来像是一个sql注入漏洞的教科书示例。 –
你使用mysql和sql-server吗? – ughai
第6行$ ship_select是一个mysql_result值,它是查询的状态 - 不是您认为它的数据项。您需要执行一次获取来获取数据行,就像您在第二个查询中那样。 – bitfiddler