我正在尝试填充三个PHP值,它将在数据库中搜索特定表(table_2
)的特定表($cscomp
),该表的名称与其中一列的值相同(我已经将其分配给php值table_1
)来自同一数据库中单独的表(table_1
)。
然后,我需要根据与列值中的日期匹配的当前日期,调用它在所选表中找到的特定行的所有信息。
在先前的sql搜索中,我已经有从$cscomp, $csship
中的值填充的以下php字段,可以正常工作:
我正在尝试的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 ?>
我得到的错误是:
可捕获的致命错误:无法创建类mysqli_result的对象
转换为字符串。
这与上面的第7行有关。我认为它正在寻找正确的表开始,但随后没有得到我需要的行值。有什么建议么?
最佳答案
实际上,引发该错误是因为您没有像在第8行中那样在第6行中获取查询的值。无论如何,您只是尝试执行以下操作:
$date_select = "SELECT *
FROM $cscomp
WHERE shipdate = CURRDATE()
AND csship='$csship'
LIMIT=1";
我看不到第一个查询的含义。您正在要求mysql给您表名称,并要求根据表名称过滤数据库。
关于php - 搜索特定的SQL表,然后在此结果中搜索行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29700748/