我很难尝试使用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上运行它 任何帮助都会很棒。
答案 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文件具有适合此配置的文件扩展名。