void pq\Connection::setConverter(pq\Converter $converter)

Set a data type converter.

Params:

Throws:

Example:


<?php

class HStoreConverter implements pq\Converter
{
    private 
$oids;
    
    function 
__construct(pq\Types $types) {
        
$this->oids = [$types["hstore"]->oid];
    }
    
    function 
convertTypes() {
        return 
$this->oids;
    }
    
    function 
convertFromString($string) {
        return eval(
"return [$string];");
    }
    
    function 
convertToString($data) {
        
$string "";
        foreach (
$data as $k => $v) {
            if (isset(
$v)) {
                
$string .= sprintf("\"%s\"=>\"%s\","addslashes($k), addslashes($v));
            } else {
                
$string .= sprintf("\"%s\"=>NULL,"addslashes($k));
            }
        }
        return 
$string;
    }
}
$connection = new pq\Connection;
$types = new pq\Types($connection);

$connection->setConverter(new HStoreConverter($types));

$result $connection->execParams("SELECT \$1", [
    [
        
"k1" => "v1",
        
"k2" => "v2",
        
"k3" => null
    
]
], [
    
$types["hstore"]->oid
]);

var_dump(current($result->fetchAll()));

?>

Yields:


  array(1) {
    [0]=>
    array(3) {
      ["k1"]=>
      string(2) "v1"
      ["k2"]=>
      string(2) "v2"
      ["k3"]=>
      NULL
    }
  }