php sqlite3 安全,在PHP中创建安全的sqlite3连接(Create safe sqlite3 connection in PHP)

在PHP中创建安全的sqlite3连接(Create safe sqlite3 connection in PHP)

我想创建一个用户登录/注册,但我认为当我这样做时它不是很安全:

$db = new PDO('sqlite:mydatabase.sqlite3');

$users = $db->query("SELECT * FROM users");

$userlist = Array();

foreach($users as $user)

{

$userlist[] = $user['name'];

}

创建安全连接的最佳方法是什么?

I want to create a user login/register but I think it is not really safe when I'm doing this:

$db = new PDO('sqlite:mydatabase.sqlite3');

$users = $db->query("SELECT * FROM users");

$userlist = Array();

foreach($users as $user)

{

$userlist[] = $user['name'];

}

What's the best way to create a safe connection?

原文:https://stackoverflow.com/questions/35998251

更新时间:2019-12-03 06:20

最满意答案

It is totally safe. But if you want to add parameters to the query, you can use prepared statements:

2016-03-14

相关问答

编辑:这个答案是过时的,但不能被删除,因为它被接受。 请参阅Stacey Richards的解决方案,以获得正确答案。 sudo apt-get install php5-cli php5-dev make

sudo apt-get install libsqlite3-0 libsqlite3-dev

sudo apt-get install php5-sqlite3

sudo apt-get remove php5-sqlite3

cd ~

wget http://pecl.php

...

这是完全安全的。 但是,如果要向查询添加参数,可以使用预准备语句: http://php.net/manual/en/pdo.prepared-statements.php It is totally safe. But if you want to add parameters to the query, you can use prepared statements: http://php.net/manual/en/pdo.prepared-statements.php

你应该获取结果: var_dump($result->fetchArray());

You should fetch the results: var_dump($result->fetchArray());

SQLite是一个嵌入式数据库引擎,因此除了sqlite3扩展外,没有什么需要安装的。 打开数据库非常简单: <?php

$db = new SQLite3('my_database_file.db');

SQLite is an embedded database engine, so there's nothing you need to install except the sqlite3 extension. Opening the database is as simple as: <

...

您需要在使用-cp选项编译和运行类时在类路径中显式提供sqlite-jdbc-3.7.2.jar文件。 java和javac命令只查找类路径中的.class文件而不是jar。 尝试这个 : javac -cp ;. .java 如果您有多个第三方库,则可以使用通配符: javac -cp ;. .java 注意; 是Windows中

...

在控制器的顶部,您可以看到其他使用指令,添加以下声明: Use SQLite3;

Laravel由PSR-4命名空间驱动,它基本上指向一个目录结构中的文件,因此不同的库可以拥有相同的类名,而不必踩在彼此的脚趾上。 除非您声明SQLite类的名称空间,否则它认为该类与您的控制器位于同一个文件夹中,因为这是您从中调用它的地方。 PHP中包含的SQLite3类具有一个以“SQLite3”开头的名称空间,因此通过声明顶部的任何对该类的引用都会指向正确的脚本。 At the top of your con

...

驱动程序文件应命名为dbo_sqlite3.php 。 您可以从GitHub下载最新版本 。 您的数据库配置可能如下所示: var $default = array(

'driver' => 'sqlite3',

'database' => 'database.sqlite'

);

CakePHP将在app / webroot中查找数据库文件。 您可以使用相对于webroot目录的绝对路径或路径。 例如,如果您宁愿将数据库存储在app目录中(从webroot向上一级),您可以编写

...

让您的数据库库为您完成。 PHP Sqlite3库支持预准备语句 : $stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');

$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

Get your database library to do it for you. The PHP Sqlite3 library supports prepared statements: $stmt = $db->p

...

(只是复制我的评论,解决了@ reverendocabron的问题,以便于参考。) $ flags参数应该是SQLITE3_OPEN_READONLY , SQLITE3_OPEN_READWRITE和/或SQLITE3_OPEN_CREATE (其值分别为1,2和4),而你给它一个Unix风格的0666参数。 在你的情况下,我猜你正在寻找的是SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE SQLITE3_OPEN_READWRITE | SQLITE3_

...

如果你只想获得第一行,那么就不需要使用循环了。 $result=$dbhandle->query("select * from table");

if ($result) {

$row = $result->fetch(PDO::FETCH_ASSOC);

echo "

";

print_r($row);

echo "

";

}

更新:获取所有行。 $result=$dbhandle->query("select * from table");

$rows =

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在PHP扩展SQLite3,你可以按照以下步骤进行操作: 1. 检查PHP版本:确保你的PHP版本符合SQLite3扩展的要求。SQLite3扩展需要PHP 5.3.0或更高版本。 2. 安装SQLite3库:首先,你需要确保系统上已经安装了SQLite3库。你可以通过包管理工具(如apt、yum、brew等)来安装。例如,在Ubuntu上,你可以使用以下命令安装SQLite3库: ``` sudo apt-get install sqlite3 libsqlite3-dev ``` 3. 安装SQLite3扩展:有几种方法可以安装SQLite3扩展: - 编译安装:如果你有编译PHP的经验,可以下载源代码并编译安装PHP,并在编译配置启用SQLite3扩展。 - 使用PECL:PECL(PHP扩展社区库)是一个PHP扩展的存储库。你可以使用以下命令安装SQLite3扩展: ``` pecl install sqlite3 ``` - 手动安装:如果上述方法不适用,你可以手动下载SQLite3扩展的源代码,并按照其的说明进行编译和安装。你可以在PECL官方网站(https://pecl.php.net/package/sqlite3)或GitHub存储库(https://github.com/php/pecl-database-sqlite)上找到SQLite3扩展的源代码。 4. 启用SQLite3扩展:编辑你的php.ini文件,找到以下行,并取消注释(去掉前面的分号): ``` ;extension=sqlite3 ``` 如果没有找到该行,请添加上述行。 5. 重启Web服务器:保存php.ini文件,并重新启动你的Web服务器,以使配置更改生效。 安装完成后,你就可以在PHP使用SQLite3扩展来连接和操作SQLite3数据库了。你可以查阅SQLite3扩展的文档,了解其提供的函数和用法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值