Clase para conexión con banco de datos Sybase con PHP basado en la biblioteca sqlanywhere. Clase para conexión con base de datos Sybase con PHP, creada para la biblioteca PHP SqlAnywhere.
El desarrollo se basó en PDO Native Class.
HACER:
==================
1- Primero instale el módulo sqlanywhere para PHP ¡Haga clic aquí!.
2- Utilice Composer para instalar este paquete agregando las líneas siguientes en la sección require
: // ... "require": { "cagartner/SQLAnywhereClient": "dev-master" }, // ...
A continuación se muestran algunos ejemplos de cómo utilizar esta clase.
SQLAnywhereClient::__construct
: <?php
require ' ../vendor/autoload.php ' ;
use Cagartner SQLAnywhereClient ;
try {
$ dns = " uid={user};pwd={password};ENG={database-name};commlinks=tcpip{host={host};port={port}} " ;
$ con = new SQLAnywhereClient ( $ dns );
} catch ( Exception $ e ) {
echo $ e -> getMessage ();
}
?>
Puedes definir dos opciones iniciadas junto con la conexión, que son las siguientes: auto_commit
e is_persistent
. Puede definir dos parámetros de configuración iniciales con la conexión: auto_commit
e is_persistent
.
auto_commit
Habilita la confirmación automática, el valor predeterminado es true
;is_persistent
Defina el modo persistente, el valor predeterminado es false
; <?php
require ' ../vendor/autoload.php ' ;
use Cagartner SQLAnywhereClient ;
try {
$ dns = " uid={uid};pwd={password};ENG={};commlinks=tcpip{host={host};port={password}} " ;
$ autocommit = false ;
$ persistent = true ;
$ con = new SQLAnywhereClient ( $ dns , $ autocommit , $ persistent );
} catch ( Exception $ e ) {
echo $ e -> getMessage ();
}
?>
SQLAnywhereClient::exec()
: <?php
$ sql = " SELECT * FROM users " ;
$ result = $ con -> exec ( $ sql );
echo " <pre> " ;
print_r ( $ result -> fetch ());
echo " </pre> " ;
exit ;
?>
SQLAnywhereClient::query()
:Este método devuelve una matriz con los datos.
<?php
$ sql = " SELECT name, email FROM users " ;
foreach ( $ con -> query ( $ sql ) as $ result ) {
print_r ( $ result );
}
exit ;
?>
SQLAnywhereQuery::fetch
Volver a la primera fila
<?php
$ sql = " SELECT name, email FROM users " ;
$ result = $ con -> exec ( $ sql );
$ user = $ result -> fetch ();
print_r ( $ user );
exit ;
?>
Puede elegir cómo es el formato en el que se recuperan sus datos SQLAnywhereClient
<?php
// Retornar em um array com idexação por numero e coluna
SQLAnywhereClient:: FETCH_ARRAY ;
// Retornar em um array com idexação por coluna
SQLAnywhereClient:: FETCH_ASSOC ; // Formato Padrão!
// Retornar em um array com idexação por coluna
SQLAnywhereClient:: FETCH_OBJECT ;
// Retornar em um array com idexação por linha de dados
SQLAnywhereClient:: FETCH_ROW ;
// Retornar em um array com idexação por colunas
SQLAnywhereClient:: FETCH_FIELD ;
?>
Ejemplo:
<?php
$ sql = " SELECT name, email FROM users " ;
$ result = $ con -> exec ( $ sql );
$ user = $ result -> fetch ( SQLAnywhereClient:: FETCH_OBJECT );
print_r ( $ user );
exit ;
?>
SQLAnywhereQuery::fetchAll
Devolver todas las filas seleccionadas
<?php
$ sql = " SELECT name, email FROM users " ;
$ result = $ con -> exec ( $ sql );
$ user = $ result -> fetchAll ();
print_r ( $ user );
exit ;
?>
En este método también podrás elegir el formato de devolución:
<?php
$ sql = " SELECT name, email FROM users " ;
$ result = $ con -> exec ( $ sql );
$ user = $ result -> fetchAll ( SQLAnywhereClient:: FETCH_OBJECT );
print_r ( $ user );
exit ;
?>
SQLAnywhereQuery::rowCount
Devuelve el recuento de filas
<?php
$ sql = " SELECT name, email FROM users " ;
$ result = $ con -> exec ( $ sql );
echo " We find " . $ result -> rowCount () . " itens. " ;
exit ;
?>
O con alias count
:
<?php
$ sql = " SELECT name, email FROM user " ;
$ result = $ con -> exec ( $ sql );
echo " We find " . $ result -> count () . " itens. " ;
exit ;
?>
SQLAnywhereQuery::fieldCount
Devuelve el total de campos
<?php
$ sql = " SELECT name, email FROM user " ;
$ result = $ con -> exec ( $ sql );
echo " We find " . $ result -> fieldCount () . " fields. " ;
exit ;
?>
SQLAnywhereClient::lastInsertId()
Devolver el último ID insertado
<?php
$ sql = " INSERT INTO user name, email VALUES ('Carlos', '[email protected]') " ;
if ( $ con -> exec ( $ sql )) {
echo $ con -> lastInsertId ();
}
exit ;
?>
SQLAnywhereClient::prepare()
: Declaración preparada con ?
:
<?php
$ sql = " INSERT INTO users name, email VALUES (?, ?) " ;
$ stmnt = $ con -> prepare ( $ sql );
if ( $ stmnt -> execute ( array ( ' Carlos ' , ' [email protected] ' ))) {
echo $ con -> lastInsertId ();
}
exit ;
?>
Y estos parámetros nombres:
<?php
$ sql = " INSERT INTO users name, email VALUES (:name, :email) " ;
$ stmnt = $ con -> prepare ( $ sql );
if ( $ stmnt -> execute ( array (
' :name ' => ' Carlos ' ,
' :email ' => ' [email protected] '
))) {
echo $ con -> lastInsertId ();
}
exit ;
?>
SQLAnywherePrepared::bindParam()
: <?php
$ sql = " INSERT INTO users name, email VALUES (:name, :email) " ;
$ stmnt = $ con -> prepare ( $ sql );
$ name = " Carlos A. " ;
$ email = " [email protected] " ;
$ stmnt -> bindParam ( ' :name ' , $ name );
$ stmnt -> bindParam ( ' :email ' , $ email );
if ( $ stmnt -> execute ()) {
echo $ con -> lastInsertId ();
}
exit ;
?>