2012-08-10 80 views
0

现在,我想用php和sqlite编写程序,但我有问题。浏览器显示错误给我,你能帮我纠正我的程序吗?这是源代码,从Chrome浏览器sqlite和php当打开数据库

<?php 
$user_id = $_POST["user_id"]; 
$pass_id = $_POST["pass_id"]; 

$database = sqlite_open("database_support/user_acces..."); 
$result = sqlite_query($database, "select * from user_table where user_id like  '$user_id' and pass_id like '$pass_id'"); 

if($result){ 
$_SESSION["user_id"] = $user_id; 
$_SESSION["pass_id"] = $pass_id; 
$_SESSION["time_id"] = time() + 10; 
echo ($_SESSION["time_id"]); 
} 
else{ 
header("location:index.php"); 
} 
?> 

结果:

 
Warning: sqlite_open() [function.sqlite-open]: unable to open database: C:\xampp\htdocs\aptana\gsy\document_supp… in C:\xampp\htdocs\aptana\gsy\document_supp… on line 5 

Warning: sqlite_query() expects parameter 1 to be resource, string given in C:\xampp\htdocs\aptana\gsy\document_supp… on line 6 

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\aptana\gsy\document_supp… in C:\xampp\htdocs\aptana\gsy\document_supp… on line 15 

任何人可以帮助我,?谢谢4你的时间,

回答

0

Your sqllite_open应该像下面的代码一样。在你的代码中它似乎缺乏一些东西。 如果你想在任何文件中使用会话,那么你必须在使用它之前开始会话 所以你的代码必须像这个示例代码。

<?php 
session_start(); 

$dbhandle = sqlite_open('db/test.db', 0666, $error); 

if (!$dbhandle) die ($error); 

$query = "SELECT Name, Sex FROM Friends"; 
$result = sqlite_query($dbhandle, $query); 
if (!$result) die("Cannot execute query."); 
?> 
+0

好吧,它现在的权利,但我仍然有问题。浏览器说

警告:SQLiteDatabase :: query()[sqlitedatabase.query]:没有这样的表:user_table在C:\ xampp \ htdocs \ aptana \ gsy \ document_support \ checkpoint.php在第16行没有这样的表:user_table

我使用mozilla中的sqlite管理器添加数据库。我现在的问题是“我们可以使用sqlite管理器创建数据库并使用php连接它来执行一些查询,如”select * from user_table“? – NPE 2012-08-10 10:36:56

+0

我认为表不存在于您的数据库中 – gaurang171 2012-08-10 10:39:20

0

确保该文件是有效的sqlite文件。由于您正尝试访问此文件中的$_SESSION,因此还需要执行session_start。另外location更改不应该由任何其他html内容。