v1.1 2023-03-13 14:25 UTC

This package is auto-updated.

Last update: 2024-09-13 17:52:55 UTC


README

PHP数据对象(PDO)扩展为PHP中访问数据库定义了一个轻量级、一致的接口。这个库致力于添加bolt协议。该协议由Neo4j创建,并被Neo4j、Memgraph或Amazon Neptune等图数据库使用。

目前尚无官方的C/C++ bolt驱动程序,因此无法将此库作为扩展。甚至非官方驱动程序看起来也没有得到维护。也许在将来会有所改变,但在那之前,您可以使用这个版本。

Bolt规范

Buy Me a Coffee at ko-fi.com

要求

安装

您可以使用composer或从GitHub下载此存储库并将其手动实现。

Composer

在您的项目中运行以下命令以安装包的最新适用版本

composer require stefanak-michal/pdo-bolt

Packagist

使用方法

您可以将此库用作典型的PDO,但必须创建\pdo_bolt\PDO的实例,该实例重写了\PDO并添加了bolt方案。

$pdo = new \pdo_bolt\PDO('bolt:host=localhost;port=7687;appname=pdo-bolt', 'neo4j', 'neo4j');
$stmt = $pdo->prepare('RETURN $n AS num, $s AS str');
$stmt->bindValue('n', 123, \PDO::PARAM_INT);
$stmt->bindValue('s', 'hello');
$stmt->execute();
$stmt->setFetchMode(\PDO::FETCH_ASSOC);
foreach ($stmt AS $row) {
    print_r($row);
}

/* output:
Array
(
    [num] => 123
    [str] => hello
)
*/

有关如何使用PDO的更多信息,请参阅官方文档php.net

DSN

PDO构造函数可用选项

请检查方法注释以获取更多信息。

Yii框架

您可以使用此库与Yii框架非常简单的方式。只需在配置中设置PDO类。

https://yiiframework.cn/doc/api/2.0/yii-db-connection#$pdoClass-detail

Bolt特定功能

参数占位符

CQL支持以下参数占位符:?或以$为前缀的字符串。

不要使用以:为前缀的占位符字符串,因为CQL使用:作为标签前缀。

PDO方法reset()

图数据库可能处于故障状态(错误代码02001),并且任何后续的消息都将被忽略(错误代码02002)。您无需销毁PDO实例并创建新的实例,只需调用此方法即可。

PDO::PARAM_LOB

自动将资源或字符串转换为Bytes类的实例。

额外的bolt参数类型

可用的参数列表取决于您使用的图数据库(Neo4jMemgraph)。

使用Bolt不支持PDO功能

  • 获取模式PDO::FETCH_LAZY
  • 获取模式PDO::FETCH_NAMED
  • PDO方法lastInsertId()
  • PDOStatement方法rowCount()
  • 可滚动光标

Bolt错误代码

标准PDO错误代码与SQL数据库相关。图数据库有CQL(Cypher查询语言),因此我不得不创建一个新的错误代码列表。