sql查询不在本地主机上执行

Posted

技术标签:

【中文标题】sql查询不在本地主机上执行【英文标题】:sql query not executing on local host 【发布时间】:2017-09-06 04:43:50 【问题描述】:

下面是文件“Column_details.php”中包含的一段代码。目标是在用户单击表名时显示表的所有属性。表名在 $id 中检索。问题是此查询在 phpmyadmin 上成功运行。但是在localhost上执行Column_details.php时不会运行。

$id = $_GET['id'];
echo $id;
$result = mysqli_query($conn,  "show fields from '$id'");
$row = mysqli_num_rows($result);
if($row<=0)
    echo " No such columns";

else
    echo "<table border='1'>";
          while($row=mysqli_fetch_array($result))

                $col_name = $row['Field'];

                $click = "<a href='Column_details.php?mv= ".$col_name."'>" . "</a>";
                echo "<tr>";
                echo "<td>" . $col_name . "</td>";

                echo "<td>" . $click . "</td>";

          
    echo "</table>";

$conn->close();
?>

</body>
</html>

【问题讨论】:

你能发布你的连接字符串吗 @maSTARrHiAn 连接字符串是 $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) die("连接失败:" . $conn->connect_error); 并回应 $conn 你得到了吗? 还有。你的&lt;a&gt; 标签没有内容有关系吗?并且您的 &lt;table&gt; 缺少结束 &lt;/tr&gt; 标记? @maSTARrHiAn 我得到 (!) 可捕获的致命错误:无法将类 mysqli 的对象转换为第 18 行 C:\wamp64\www\Homework3\Column_details.php 中的字符串。 【参考方案1】:

在您整理好连接后,您可能想要修复您的表格

echo "<table border='1'>";
      while($row=mysqli_fetch_array($result))

            $col_name = $row['Field'];

            $click = "<a href='Column_details.php?mv= ".$col_name."'>" .$col_name. "</a>";
            echo "<tr>";
            echo "<td>" . $col_name . "</td>";

            echo "<td>" . $click . "</td>";

      
echo "</table>";

【讨论】:

感谢您修表。我已经修复了连接。但我仍然收到错误:警告:mysqli_num_rows() 期望参数 1 为 mysqli_result, boolean 。 你能做一个基本的选择而不是使用显示字段 我使用了以下查询:SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '$id' AND TABLE_SCHEMA = '$dbname'。但它返回 0 行。所以会显示“没有这样的列”消息。 建议做一个简单的。比如“选择 1 [测试]”

以上是关于sql查询不在本地主机上执行的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询以查找ID不在另一个表中的记录

尽量不在 SQL 查询中硬编码日期范围(Python、SQL 服务器)

SQL中,如何查询存在一个表的字段而不在另一个表的字段中的数据记录?

检查可空列是不是稀疏或不在 SQL Server 中查询

同一查询的不同执行计划

AWS RDS SQL 数据库在本地主机上工作——从服务器抛出错误