为什么我的include标签会删除之后的所有内容?

时间:2013-06-13 23:11:41

标签: php

我有一个PHP文件,但<?php include 'RandomFile.php' ?>之后的所有内容都被丢弃了,我不知道为什么!我需要帮助。

RandomFile.php的内容为:

require 'cons.php';
mysql_connect($URL, $USER, $PASS, $DBN);
$strSQL = "SELECT * FROM song";

// Execute the query (the recordset $rs contains the result)
$rs = mysql_query($strSQL);

// Loop the recordset $rs
// Each row will be made into an array ($row) using mysql_fetch_array
if($rs === FALSE) {
    die(mysql_error()); // TODO: better error handling
}
while($row = mysql_fetch_array($rs)) {


    // Write the value of the column FirstName (which is now in the array $row)
    echo $row['url'] . "<br />";

}
// Close the database connection
mysql_close();

所以基本上在<?php include 'randomfile.php' ?>被包含之后我的所有html都没有在我的浏览器中直观显示但是如果我回去编辑文件它就在那里???

4 个答案:

答案 0 :(得分:1)

我猜测cons.php是数据库的连接文件。您需要指定cons.php的完整路径。来自PHP Manual for require

  

需要包含相同,除非失败,它也会   产生致命的 E_COMPILE_ERROR 级别错误。换句话说,它会   停止脚本,而include只发出警告( E_WARNING )   允许脚本继续。

因此,此示例显示了根目录下的文件。

require ($_SERVER['DOCUMENT_ROOT'].'/cons.php');

如果它低于DocumentRoot,那么你会这样做:

require ($_SERVER['DOCUMENT_ROOT'].'/../cons.php');

另一方面,请将所有mysql_函数替换为mysqli_。新版本的PHP不会将其包含在mysql_ has been deprecated

答案 1 :(得分:1)

由于您在没有首先选择数据库的情况下尝试SQL查询,因此mysql失败并显示错误“未选择数据库”

错误显示为代码die(mysql_error());。 die中止脚本的进一步执行。如果你想继续,你应该print而不是像这样

if($rs === FALSE) {
    print(mysql_error() . "\n"); // TODO: better error handling
}
else {
    while($row = mysql_fetch_array($rs)) {
        // Write the value of the column FirstName (which is now in the array $row)
        echo $row['url'] . "<br />";
    }
    // Close the database connection
    mysql_close();
}

答案 2 :(得分:0)

关键是这一行:

    die(mysql_error()); // TODO: better error handling

如果连接到数据库时出错(正如您在评论中所描述的那样:“没有选择数据库”),执行将“死亡”,并且不会再将该页面发送到浏览器。

正如代码注释所说,您需要更好的错误处理,但您可以想象暂时die更改为echo,然后执行将继续。

答案 3 :(得分:-1)

您是否遗漏了include中的分号(;)?

顺便说一下,你可以设置

<?php error_reporting(E_ALL);
      ini_set('display_errors', '1'); ?>

这将显示脚本中的错误。