'>'之后的PHP代码显示为HTML

时间:2011-07-05 11:12:35

标签: php sqlite apache2 xampp mamp

我很难尝试使用PHP来获取和插入SQLite数据库中的值。我还没有成功到那么远! 看来'>'之后的所有php代码显示为HTML文本,我不明白为什么。代码发布在下面。

   <html>
<head></head>
<body>
<?php
try
{
  //create or open the database
  $database = new SQLiteDatabase('myDatabase.sqlite', 0666, $error);
}
catch(Exception $e)
{
  die($error);
}

//add Movie table to database
$query = 'CREATE TABLE Movies ' .
         '(Title TEXT, Director TEXT, Year INTEGER)';

if(!$database->queryExec($query, $error))
{
  die($error);
}

//insert data into database
$query =
  'INSERT INTO Movies (Title, Director, Year) ' .
  'VALUES ("The Dark Knight", "Christopher Nolan", 2008); ' .

  'INSERT INTO Movies (Title, Director, Year) ' .
  'VALUES ("Cloverfield", "Matt Reeves", 2008); ' .

  'INSERT INTO Movies (Title, Director, YEAR) ' .
  'VALUES ("Beverly Hills Chihuahua", "Raja Gosnell", 2008)';

if(!$database->queryExec($query, $error))
{
  die($error);
}

//read data from database
$query = "SELECT * FROM Movies";
if($result = $database->query($query, SQLITE_BOTH, $error))
{
  while($row = $result->fetch())
  {
    print("Title: {$row['Title']} <br />" .
          "Director: {$row['Director']} <br />".
          "Year: {$row['Year']} <br /><br />");
      }
    }
    else
    {
      die($error);
    }
    ?>
    </body>
    </html>

这就是html中显示的内容。

queryExec($query, $error)) { die($error); } //insert data into database $query = 'INSERT INTO Movies (Title, Director, Year) ' . 'VALUES ("The Dark Knight", "Christopher Nolan", 2008); ' . 'INSERT INTO Movies (Title, Director, Year) ' . 'VALUES ("Cloverfield", "Matt Reeves", 2008); ' . 'INSERT INTO Movies (Title, Director, YEAR) ' . 'VALUES ("Beverly Hills Chihuahua", "Raja Gosnell", 2008)'; if(!$database->queryExec($query, $error)) { die($error); } //read data from database $query = "SELECT * FROM Movies"; if($result = $database->query($query, SQLITE_BOTH, $error)) { while($row = $result->fetch()) { print("Title: {$row['Title']}" . "Director: {$row['Director']}". "Year: {$row['Year']}"); } } else { die($error); } ?> 

我在我的localhost apache服务器上的Mac OS X上运行它 任何帮助都会很棒。

7 个答案:

答案 0 :(得分:2)

因为<?php->之间的代码不包含&lt;或者&gt;符号它被视为某种html标签。所以,如果这个标签你看到外面的一切。这意味着 - 没有安装php(正确)

试试这个:检查你的httpd.conf中是否有这样的字符串:AddType application/x-httpd-php .php并尝试将你的文件保存为.php

答案 1 :(得分:1)

如果您使用的是.html文件,请尝试将其重命名为.php。

答案 2 :(得分:0)

你确定你的php安装工作正常吗?尝试运行此脚本(test.php):

<?php
phpinfo();
?>

答案 3 :(得分:0)

如果您之后说的代码?&gt;以html身份运行然后它完全没问题。因为?&gt;正在关闭php的标签..

“”之下的任何内容都被视为php,并且在它之外被认为是html ...

或php服务器未正确安装,因此所有内容都被视为HTML代码..

答案 4 :(得分:0)

当然你的Apache没有正确配置php,它只是发送原始页面,不仅仅是在&gt;之后,在你的浏览器中检查view-source你可以看到你的所有代码

答案 5 :(得分:0)

您为脚本使用了哪些文件名?

答案 6 :(得分:0)

您的代码未在服务器上执行。 Apache提供你的php-Sourcecode。您的网络浏览器认为<?php是一个开头标记,但它无法识别它并且不显示标记。在这里,您的浏览器认为我提到的标签结束了:if(!$database->queryExec($query, $error))。请参阅此行中的>?因此,您的浏览器认为从<?php到此>的所有内容都是未知标记,它会忽略并且不会显示。在浏览器中右键单击页面,然后选择查看源代码。然后你应该看到完整的来源。

确保你的apache中正确安装了mod-php,或者你正确地设置了cgi-mod。检查httpd.conf中是否有注册的文件扩展名(应该看起来像AddType application/x-httpd-php .php .phtml .php3)。确保您的php文件具有适合此配置的文件扩展名。