PHP+sqlite3
本篇文章讲述php怎么与sqlite数据库协作。
PHP版本: 5.6.23 sqlite版本: 3.16.2
同mysql一样,早期php操作这些数据库都是分别调用各自的驱动。现在加入了PDO这个中间层。可以看看我这篇笔记PDO用法记录.下面讲的代码可能并不规范,但是能够工作,我的目的也在于此。
sqlite3操作
废话不多说,sqlite可以看做是小型数据库,去官网选择相应版本解压到某个目录下,并把该目录放到环境变量path
中。
用vscode打开项目目录,Ctrl+`打开终端,输入sqlite3.
出现上图即表示安装成功。
貌似sqlite3命令行不能自动完成,要添加的话得自己编译源码。see this
关于sqlite的命令行操作直接去官网看吧。
不过有个快速的写数据库的办法就是直接建sql文件,然后用以下命令将sql文件转成sqlite3数据库文件。经测试完全可用。如果不能使用,请注意你的sql语法是否有误。
这是我写的sql文件,与sqlite3生成的不一样,为了预防出现问题,请使用简单点的sql语句。
CREATE TABLE meals (dish text, price number, meal text); INSERT INTO "meals" VALUES('eggs',12,'lunch');
这个命令将 .sql 转成sqlite3支持的.db
cat test.sql | sqlite3 test.db
php.ini配置
首先确保php.ini里的所有涉及sqlite的扩展打开。
然后把路径添加进去,别忘了重启。
测试
<form action="Ex1-7.php" method="POST"> test sqlite3: <input type="text" name="meal"> <br> <button type="submit">check meal</button> </form>
<?php // Use the SQLite database 'dinner.db' $db = new PDO('sqlite:dinner.db'); // Define what the allowable meals are $meals = array('breakfast','lunch','dinner'); // Check if submitted form parameter "meal" is one of // "breakfast", "lunch", or "dinner" // fixme: Undefined index: meals if (in_array($_POST['meal'], $meals)) { // If so, get all of the dishes for the specified meal $stmt = $db->prepare('SELECT dish,price FROM meals WHERE meal LIKE ?'); $stmt->execute(array($_POST['meal'])); $rows = $stmt->fetchAll(); // If no dishes were found in the database, say so if (count($rows) == 0) { print "No dishes available."; } else { // Print out each dish and its price as a row // in an HTML table print '<table><tr><th>Dish</th><th>Price</th></tr>'; foreach ($rows as $row) { print "<tr><td>$row[0]</td><td>$row[1]</td></tr>"; } print "</table>"; } } else { // This message prints if the submitted parameter "meal" isn't // "breakfast", "lunch", or "dinner" print "Unknown meal."; } ?>
测试结果
相关推荐
dearm 2020-08-25
loveandroid0 2020-06-08
loveandroid0 2020-05-31
Attend 2020-05-27
huacuilaifa 2020-05-27
MFCJCK 2020-05-16
ggwxk0 2020-05-07
MFCJCK 2020-05-05
仁鱼 2020-03-26
huavhuahua 2020-03-03
DAV数据库 2020-03-03
MFCJCK 2020-01-11
Dlanguage 2020-01-03
loveandroid0 2019-12-30
wzxxtt0 2019-12-29
wyqwilliam 2019-12-21
宿舍 2019-11-30
昭君出塞 2011-03-27
fuzhangpeng 2011-08-09