Classe para conexão com banco de dados Sybase com PHP baseada na biblioteca sqlanywhere. Class for connection with database Sybase with PHP, created for PHP library SqlAnywhere.
The development was based on PDO Native Class.
TODO:
- More tests.
=================
1- First install sqlanywhere module for PHP Click Here!.
2- Use composer to install this package adding the lines bellow in the require section require
:
// ...
"require": {
"cagartner/SQLAnywhereClient": "dev-master"
},
// ...
Bellow have some examples of how to use this class.
<?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();
}
?>
Você pode definir duas opções iniciais junto com a conexão, que são as seguintes: auto_commit
e is_persistent
.
You can define two initials configuration params with the connection: auto_commit
and is_persistent
.
auto_commit
Enable auto commit, default istrue
;is_persistent
Define persistent mode, default isfalse
;
<?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();
}
?>
<?php
$sql = "SELECT * FROM users";
$result = $con->exec( $sql );
echo "<pre>";
print_r($result->fetch());
echo "</pre>";
exit;
?>
This method return an array with the data
<?php
$sql = "SELECT name, email FROM users";
foreach ($con->query( $sql ) as $result) {
print_r($result);
}
exit;
?>
Return first row
<?php
$sql = "SELECT name, email FROM users";
$result = $con->exec( $sql );
$user = $result->fetch();
print_r($user);
exit;
?>
You can choose how is the format that your data is retrieve 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;
?>
Example:
<?php
$sql = "SELECT name, email FROM users";
$result = $con->exec( $sql );
$user = $result->fetch( SQLAnywhereClient::FETCH_OBJECT );
print_r($user);
exit;
?>
Return all selected rows
<?php
$sql = "SELECT name, email FROM users";
$result = $con->exec( $sql );
$user = $result->fetchAll();
print_r($user);
exit;
?>
In this method you also can choose the format of return too:
<?php
$sql = "SELECT name, email FROM users";
$result = $con->exec( $sql );
$user = $result->fetchAll( SQLAnywhereClient::FETCH_OBJECT );
print_r($user);
exit;
?>
Return the count of rows
<?php
$sql = "SELECT name, email FROM users";
$result = $con->exec( $sql );
echo "We find " . $result->rowCount() . " itens.";
exit;
?>
Or with count
alias:
<?php
$sql = "SELECT name, email FROM user";
$result = $con->exec( $sql );
echo "We find " . $result->count() . " itens.";
exit;
?>
Return the total of fields
<?php
$sql = "SELECT name, email FROM user";
$result = $con->exec( $sql );
echo "We find " . $result->fieldCount() . " fields.";
exit;
?>
Return the last inserted ID
<?php
$sql = "INSERT INTO user name, email VALUES ('Carlos', '[email protected]')";
if ($con->exec( $sql )) {
echo $con->lastInsertId();
}
exit;
?>
Prepared Statement with ?
:
<?php
$sql = "INSERT INTO users name, email VALUES (?, ?)";
$stmnt = $con->prepare( $sql );
if ($stmnt->execute(array('Carlos', '[email protected]'))) {
echo $con->lastInsertId();
}
exit;
?>
And this params names:
<?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;
?>
<?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;
?>