现在的位置: 首页 > 综合 > 正文

php-handlersocket

2017年12月27日 ⁄ 综合 ⁄ 共 2279字 ⁄ 字号 评论关闭

Summary

This extension provide API for communicating with HandlerSocket plugin for MySQL.

libhsclient binding for PHP.

notice

It may be defective for a test version.

Installation

required to compile the libhsclient.

$ phpize
$
./configure
$ make
# make install

A successful install will have created handlersocket.so and put it into the PHP extensions directory. You'll need to and adjust php.ini and add an extension=handlersocket.so line before you can use the extension.

Class synopsis

HandlerSocket {
   
/* Constants */
   
const HandlerSocket::PRIMARY;

   
/* Methods */
    __construct  
( string $host, int $port, [ array $options ])
   
public bool openIndex ( int $id, string $db, string $table, string $index, string $fields )
   
public mixed executeSingle ( int $id, string $op, array $fields [, int $limit, int $skip, strint $modop, array $values ] )
   
public mixed executeMulti ( array $requests )
   
public int executeUpdate ( int $id, string $op, array $fields, array $values [, int $limit, int $skip ] )
   
public int executeDelete ( int $id, string $op, array $fields [, int $limit, int $skip ] )
   
public bool executeInsert ( int $id, array $values )
   
public string getError ( void )
}

Example

<?php
$host
= 'localhost';
$port
= 9998;
$port_wr
= 9999;
$dbname
= 'hstestdb';
$table
= 'hstesttbl';

//GET
$hs
= new HandlerSocket($host, $port);
if (!($hs->openIndex(1, $dbname, $table, HandlerSocket::PRIMARY, 'k,v')))
{
    echo $hs
->getError(), PHP_EOL;
   
die();
}

$retval
= $hs->executeSingle(1, '=', array('k1'), 1, 0);

var_dump
($retval);

$retval
= $hs->executeMulti(
    array
(array(1, '=', array('k1'), 1, 0),
          array
(1, '=', array('k2'), 1, 0)));

var_dump
($retval);

unset
($hs);


//UPDATE
$hs
= new HandlerSocket($host, $port_wr);
if (!($hs->openIndex(2, $dbname, $table, '', 'v')))
{
    echo $hs
->getError(), PHP_EOL;
   
die();
}

if (!($hs->executeUpdate(2, '=', array('k1'), array('V1'), 1, 0)))
{
    echo $hs
->getError(), PHP_EOL;
   
die();
}

unset
($hs);


//INSERT
$hs
= new HandlerSocket($host, $port_wr);
if (!($hs->openIndex(3, $dbname, $table, '', 'k,v')))
{
    echo $hs
->getError(), PHP_EOL;
   
die();
}

if (!($hs->executeInsert(3, array('k2', 'v2'))))
{
    echo $hs
->getError(), PHP_EOL;
}
if (!($hs->executeInsert(3, array('k3', 'v3'))))
{
    echo
'A', $hs->getError(), PHP_EOL;
}
if (!($hs->executeInsert(3, array('k4', 'v4'))))
{
    echo
'B', $hs->getError(), PHP_EOL;
}

unset
($hs);


//DELETE
$hs
= new HandlerSocket($host, $port_wr);
if (!($hs->openIndex(4, $dbname, $table, '', '')))
{
    echo $hs
->getError(), PHP_EOL;
   
die();
}

if (!($hs->executeDelete(4, '=', array('k2'))))
{
    echo $hs
->getError(), PHP_EOL;
   
die();
}

抱歉!评论已关闭.