【问题标题】:Output of php into html not shown未显示 php 到 html 的输出
【发布时间】:2012-12-29 00:05:55
【问题描述】:

我正在编写一个带有 mysql 集成的简单 php 应用程序。
我有一个简单的 html 页面,我在其中连接数据库,然后为了验证,我想打印主机信息。

我有this in the html file.
输出是两个水平条,它们之间没有任何东西。

代码有什么问题?

我正在 ubuntu 12.10 的 aptana 工作室写作(也使用灯泡)。

【问题讨论】:

  • 我试了代码;至少,您应该在两行之间看到“主机信息:”。你确定你没看到?!?!?如果你不这样做,那么请删除 mysql 行并将链接设置为一些虚拟值,至少看看你得到了什么。这可能是从 mysql 传播的错误
  • 你的文件名的扩展名是什么。 .html 还是 .php?正如罗纳德所说,如果 php 被正确解释,那么你至少应该看到打印的“主机信息”字符串。如果您的文件的扩展名是 .html,那么除非您将 .html 处理为 .php,否则上述方法将不起作用。我可以离开这里,但这只是我的 2 美分
  • @Newbie:这就是我在演讲中看到的。
  • @RonaldBarzell:我改变了这些:'$link = "WHAT?!"; printf("问题: %s\n", $name);'还是什么都没有。
  • @JaspreetChahal:它是 .html。 “将进程 .html 添加为 .php”是什么意思?

标签: php html mysql printing lamp


【解决方案1】:

所有迹象都表明您的 PHP 没有被执行期间。您的数据库代码可能仍然关闭,但我们甚至还没有到那个时候。这意味着正在发生两件事之一。要么你的扩展错误,要么你的 PHP 没有配置。

首先,试试这个脚本(另存为 info.php):

<?php
    phpinfo();
?>

如果这不起作用,那么您没有配置。如果这确实有效,那么试试这个稍长的准系统示例;这是你的代码,没有数据库连接。您应该在两行之间看到一条存根消息。同样,保存时不要忘记 .php 扩展名:

<!DOCTYPE html>
<html>
    <head>
        <title>Database Management Systems II - 2nd assignment</title>
    </head>
    <body>
        <hr>
        <?php
            $link = 'link';
            printf("Host information: %s\n", $link);
        ?>
        <hr>
    </body>
</html>

【讨论】:

  • 我认为我执行它的方式完全错误。我在 /var/www/ 创建了文件 test.php(具有 root 权限)并运行它并且它工作。如何使用 aptana studio 或 geanny 写入 /var/www/ ?
  • 我从未使用过这些工具;我想应该有一个选项来更改“发布”区域或类似的......
  • php + html 推荐使用哪个工具?
  • 我两者都使用 jEdit,但我不会做很多繁重的 html。我要么通过代码生成它,要么手动做一些简单的事情,要么使用第三方 GUI 库。
  • 我想使用带有 gui 的东西,当我点击运行时,我的浏览器会打开一个选项卡,它会正确加载。你知道有什么办法吗?
【解决方案2】:

检查以确保您实际连接到数据库:

$link = new mysqli("localhost", "my_user", "my_password", "dbname");
if (mysqli_connect_error()) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
        . mysqli_connect_error());
}

【讨论】:

    【解决方案3】:

    你的 MySQLi 对象有点偏离,它应该更像..

    $link = new mysqli("localhost", "my_user", "my_password", "dbname");
    printf("Host Information: %s\n", $link->host_info);
    

    MySQLi 是一个面向对象的系统,host_info 是一个公共成员,一旦您拥有一个有效的 MySQLi 实例,您就可以访问它。

    http://php.net/manual/en/mysqli.get-host-info.php

    编辑: 允许错误报告和检查连接。

    <?php
        error_reporting(E_ALL ^ E_NOTICE);
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <title>Database Management Systems II - 2nd assignment</title>
        </head>
        <body>
            <hr>
            <?php
                $link = mysqli_connect("host","username","pass","database");
                if(mysqli_connect_error())
                    echo "MySQLi Error: " . mysqli_connect_error();
                else
                    echo "MySQLi Host Info: " . mysqli_get_host_info($link);
            ?>     
            <hr>
        </body>
    </html>
    

    【讨论】:

    • mysqli 也支持程序风格。这使得 Chris 的代码正确。他至少应该看到打印的“主机信息”。
    • 这是我在导师给我们的 pdf 中看到的。 ://
    • 我不知道 mysqli 也有程序 api。同样,您可以尝试使用 echo 而不是 printf。 echo "主机信息:" .mysqli_get_host_info($link);
    • 我正在尝试 echo "blaa";它没有出现。我一定做错了!
    • 如果您的 php 错误报告已关闭或对警告不敏感,您可能会遇到一些崩溃的问题。您仍然应该看到 error_log 文件,尝试阅读该文件以获取更多信息。也使用 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);启用基于每个脚本的错误报告。
    猜你喜欢
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多