PHP开发基础

获取驱动开发包

这里介绍如何使用PHP驱动接口编写使用SequoiaDB数据库的程序。为了简单起见,下面的示例不全部是完整的代码,只起示例性作用。可到安装目录/samples/PHP下获取相应的完整的代码。更多查看PHP API

数据操作

  • 连接数据库

    1. //创建 SequoiaDB 对象
    2. $db = new SequoiaDB();
    3. //连接数据库
    4. $arr = $db -> connect( "localhost:11810" );
    5. //打印连接结果,返回的默认是php数组类型,返回值是array(0){"errno"=>0}
    6. var_dump($arr);
    7. //如果 errno 为0,那么连接成功
    8. if( $arr['errno'] !=0 )
    9. {
    10. exit();
    11. }
  • 选择集合空间

    1. //选择名称为"foo"的集合空间,如果不存在则自动创建
    2. //返回 SequoiaCS 对象
    3. $cs = $db -> selectCS( "foo" );
    4. //检验结果,如果成功返回对象,失败返回NULL
    5. if( empty($cs) )
    6. {
    7. exit();
    8. }
  • 选择集合

    1. //选择名称为"bar"的集合,如果不存在,则自动创建
    2. //返回 SequoiaCollection 对象
    3. $cl = $cs -> selectCollection( "bar" );
    4. //检验结果,如果成功返回对象,失败返回NULL
    5. if( empty($cl) )
    6. {
    7. exit();
    8. }
  • 插入

    1. //json方式插入
    2. $arr = $cl -> insert( "{test:1}" );
    3. //检测结果
    4. if( $arr['errno'] !=0 )
    5. {
    6. exit();
    7. }
    8. //数组方式插入
    9. $rec = array ( 'a' => 1, 'b' => new SequoiaDate('2012-12-21') ) ;
    10. $arr = $cl -> insert( $rec );
    11. //检测结果
    12. if( $arr['errno'] !=0 )
    13. {
    14. exit();
    15. }
  • 查询

    1. //查询集合中的所有记录
    2. //返回 SequoiaCursor 对象
    3. $cursor = $cl -> find();
    4. //遍历所有记录
    5. while( $record = $cursor -> getNext() )
    6. {
    7. var_dump( $record );
    8. }
  • 更新

    1. //修改集合中的多有记录,把字段 test 的值修改为0
    2. $arr = $cl -> update( '{$set:{test:0}}' );
    3. //检测结果
    4. if( $arr['errno'] !=0 )
    5. {
    6. exit();
    7. }
  • 删除

    1. //删除集合中的所有记录
    2. $arr = $cl -> remove();
    3. //检测结果
    4. if( $arr['errno'] !=0 )
    5. {
    6. exit();
    7. }

集群操作

  • 选择组

    1. //选择名称为"group"的组,如果不存在,则自动创建
    2. //返回 SequoiaGroup 对象
    3. $group = $db -> selectGroup("db1");
    4. //检验结果,如果成功返回对象,失败返回NULL
    5. if( empty($group) )
    6. {
    7. exit();
    8. }
  • 启动分区组

    1. //启动分区组,首次会自动激活
    2. //返回操作信息
    3. $arr = $group -> start();
    4. //检查结果
    5. if( $arr['errno'] != 0 )
    6. {
    7. exit();
    8. }
  • 选择节点

    1. //获取名称为"node"的节点
    2. //返回 SequoiaNode 对象
    3. $node = $group -> getNode( 'hostname1:11820' );
    4. //检查对象是否空
    5. if( empty( $node ) )
    6. {
    7. exit();
    8. }