我使用SQLite3和php,当我使用相同文件夹中的所有PHP文件时可能正在工作。 但是我想用use文件夹包含Database And API脚本,另一个文件夹包含php文件插入数据和last文件夹从db中选择数据如下:
第一个文件夹 是 incDB 包含:
testCreate.php 文件
<?php
class mySqlite extends SQLite3{
function __construct(){
$this->open('test.db');
}
}
$db = new mySqlite();
$db->exec("CREATE TABLE IF NOT EXISTS `test` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` TEXT NOT NULL);"
);
?>
和 testAPI.php 文件
<?php
require_once('testCreate.php');
function insert($name){
global $db;
$stmt = $db->exec("INSERT INTO `test`(`name`) VALUES ('$name')");
if($stmt){
return true;
}else{
return false;
}
}
function select(){
global $db;
if($stmt = $db->prepare('SELECT id,name FROM test ORDER BY `id` DESC '))
{
$result = $stmt->execute();
$names=array();
while($arr=$result->fetchArray(SQLITE3_ASSOC))
{
$names[]=$arr;
}
return $names;
}
}
?>
第二个文件夹 是 cms 包含:
insert.php
<?php
if(isset($_POST['new_menu']) && !empty($_POST['new_menu'])){
require_once('../incDB/testAPI.php');
$qry = insert($_POST['new_menu']);
if($qry) echo 'ok';
else echo 'no';
}
?>
<form method='post'>
<input type="text" name="new_menu">
<button type="submit">ADD</button>
</form>
第三个文件夹 是内容包含:
select.php
<?php
require_once('../incDB/testAPI.php');
$rows = select();
?>
<table>
<thead>
<td style="border: solid 1px #000">id</td>
<td style="border: solid 1px #000">name</td>
</thead>
<?php
foreach($rows as $row){
?>
<tr>
<td style="border: dashed 1px #000"><?php echo $row['id']; ?></td>
<td style="border: dashed 1px #000"><?php echo $row['name']; ?></td>
</tr>
<?php } ?>
</table>
当我在浏览器中运行insert.php或select.php文件时,我在同一个文件夹中找到了数据库,我想在incDB文件夹中插入数据到/从数据库中选择数据。
=============== 的更新
我将testAPI.php文件更新为此
<?php
//require_once('testCreate.php');
class mySqlite extends SQLite3{
function __construct(){
$this->open('test.db');
}
}
$db = new mySqlite('../incDB/test.db');
$db->exec("CREATE TABLE IF NOT EXISTS `test` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` TEXT NOT NULL);"
);
function insert($name){
global $db;
$stmt = $db->exec("INSERT INTO `test`(`name`) VALUES ('$name')");
if($stmt){
return true;
}else{
return false;
}
}
function select(){
global $db;
if($stmt = $db->prepare('SELECT id,name FROM test ORDER BY `id` DESC '))
{
$result = $stmt->execute();
$names=array();
while($arr=$result->fetchArray(SQLITE3_ASSOC))
{
$names[]=$arr;
}
return $names;
}
}
?>
仍是同样的问题。在insert.php和select.php
的同一文件夹中创建数据库答案 0 :(得分:0)
我发现了错误
testCreate.php中的open函数需要完整路径
答案是
<?php
class mySqlite extends SQLite3{
function __construct(){
$this->open('../incDB/test.db'); /// in this line mistake
}
}
$db = new mySqlite();
$db->exec("CREATE TABLE IF NOT EXISTS `test` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` TEXT NOT NULL);"
);
?>