帮助显示数据库中的数据

时间:2011-08-23 17:29:42

标签: php mysql html

我创建了一个SQL页面,用户可以在其中运行SQL查询。我的问题是,我不知道用户将输入哪些列。因此我无法展示他所要求的东西。 就像他的查询是:从emp中选择id;我如何知道他输入的列名称,因此在结果页面中显示它。 这是您可以使用并帮助我的确切查询。我在代码中使用了很多IF情况。 例如:if(strpos($ query,“id”))然后它显示id列。 请帮我。 并提前感谢!

5 个答案:

答案 0 :(得分:1)

must开玩笑,让用户在一个全世界都可以访问的网络表单中编写这类语句。

也就是说,当您执行查询时,您可以逐行将结果提取到key => value数组中。键将包含字段名称。请使用mysql_fetch_array

但是真的。如果你的代码有效,我可以写

SHOW DATABASES;
DROP DATABASE <databasename that is on my screen>

突然间你有一个空的服务器。尽快让此脚本脱机。

答案 1 :(得分:1)

我选择GolezTrol,这根本不是保存。

如果用户使用了“DROP”或“SHOW”这两个词,或者只是允许某些内容,你当然可以检查if语句,但我不知道是否保存...

答案 2 :(得分:1)

只要他限制与php mysql调用相关的sql用户权限,它就是安全的。只给它一个数据库的选择权限,如果它在公共网站上它真的无关紧要(假设你不在乎每个人都能看到数据)。

这会将sql输出格式化为一个体面的表:

$header = null;
$colspan = 0;
while($values = odbc_fetch_array($rs))
{
    $result .= "<TR>";
    if(is_null($header))
    {
        foreach(array_keys($values) as $key)
        {
            $header .= "<TH style='border:1px dashed #00FF00;padding:5px 5px 5px 5px;align:left;'>$key</TH>";
            $colspan++;
        }
    }

    foreach($values as $value)
    {
        $result .= "<TD style='border:1px dashed #00FF00;padding:5px 5px 5px 5px;align:left;'>$value</TD>";
    }
    $result .= "</TR>";
}
}
$result = "<TABLE style='padding: 1px 1px 1px 1px;border:dash 1px #00FF00;color:#00FF00;'>".
          "<tr><td colspan='$colspan'>>>" . $sql . "</tr></td>" .
          $header.$result."</TABLE>";

答案 3 :(得分:0)

从数据库查询运行输出时,请执行以下操作:

$query = mysql_query("YOUR_USERS_QUERY_HERE");

if (mysql_affected_rows() > 0) {
    while ($row = mysql_fetch_assoc($query)) {
        $keys = array_keys($row);
        foreach ($keys as $a_key) {
            echo $a_key . "=" . $row[$a_key] . " <br /> ";
        }
        echo "<br />";
    }
} else {
    echo "No Rows Found";
}

- 编辑 -

要输出标题,您可以执行以下操作:

$first = true;
while ($row = mysql_fetch_assoc($query)) {
    if ($first == true) {
        //output header code here
        $first = false;
    }
    //output data row code here
}

答案 4 :(得分:0)

mysql_fetch_field可以从结果集中获取列名,以及有关列(类型,max_length等)的许多其他信息,这些信息可能对此类程序中显示有用。