jaschweder / sql-anywhere-client
与Sybase连接的客户端
dev-master
2014-12-09 13:54 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2020-01-06 17:27:11 UTC
README
用于通过PHP连接Sybase数据库的类,基于sqlanywhere库。
类基于PDO原生前缀。
待办事项
- 测试类效率
安装
=================
1- 首先在您的PHP中安装sqlanywhere模块 点击这里!.
2- 使用composer安装包到您的项目,将以下行添加到require
// ...
"require": {
"Jaschweder/SQLAnywhereClient": "dev-master"
},
// ...
如何使用
以下是一些使用此类的示例
连接 SQLAnywhereClient::__construct
<?php require '../vendor/autoload.php'; use Jaschweder\SQLAnywhereClient; try { $dns = "uid={usuario};pwd={senha};ENG={nome-do-banco};commlinks=tcpip{host={seu-host};port={sua-porta}}"; $con = new SQLAnywhereClient( $dns ); } catch (Exception $e) { echo $e->getMessage(); } ?>
您可以在连接时定义两个初始选项,如下所示:auto_commit
和 is_persistent
.
auto_commit
默认自动提交,默认值为true
;is_persistent
默认以持久模式定义连接,默认值为false
;
<?php require '../vendor/autoload.php'; use Jaschweder\SQLAnywhereClient; try { $dns = "uid={uid};pwd={senha};ENG={};commlinks=tcpip{host={seuuhost};port={suasenha}}"; $autocommit = false; $persistent = true; $con = new SQLAnywhereClient( $dns, $autocommit, $persistent ); } catch (Exception $e) { echo $e->getMessage(); } ?>
执行SQL命令 SQLAnywhereClient::exec()
<?php $sql = "SELECT * FROM Usuarios"; $result = $con->exec( $sql ); echo "<pre>"; print_r($result->fetch()); echo "</pre>"; exit; ?>
执行带数据返回的SQL命令 SQLAnywhereClient::query()
此方法返回一个包含多个位置的数组
<?php $sql = "SELECT nome, email FROM Usuarios"; foreach ($con->query( $sql ) as $resultado) { print_r($resultado); } exit; ?>
返回一行 SQLAnywhereQuery::fetch
返回第一行
<?php $sql = "SELECT nome, email FROM Usuarios"; $resultado = $con->exec( $sql ); $usuario = $resultado->fetch(); print_r($usuario); exit; ?>
数据返回格式
我们可以使用以下类 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; ?>
示例
<?php $sql = "SELECT nome, email FROM Usuarios"; $resultado = $con->exec( $sql ); $usuario = $resultado->fetch( SQLAnywhereClient::FETCH_OBJECT ); print_r($usuario); exit; ?>
返回所有行 SQLAnywhereQuery::fetchAll
返回所有找到的行
<?php $sql = "SELECT nome, email FROM Usuarios"; $resultado = $con->exec( $sql ); $usuario = $resultado->fetchAll(); print_r($usuario); exit; ?>
与上面的fetch类似,您可以使用相同的常量以不同的格式返回值,例如
<?php $sql = "SELECT nome, email FROM Usuarios"; $resultado = $con->exec( $sql ); $usuario = $resultado->fetchAll( SQLAnywhereClient::FETCH_OBJECT ); print_r($usuario); exit; ?>
行数 SQLAnywhereQuery::rowCount
返回找到的总行数
<?php $sql = "SELECT nome, email FROM Usuarios"; $resultado = $con->exec( $sql ); echo "Foram encontrados " . $resultado->rowCount() . " registros."; exit; ?>
或者也可以这样
<?php $sql = "SELECT nome, email FROM Usuarios"; $resultado = $con->exec( $sql ); echo "Foram encontrados " . $resultado->count() . " registros."; exit; ?>
列数 SQLAnywhereQuery::fieldCount
返回找到的总列数
<?php $sql = "SELECT nome, email FROM Usuarios"; $resultado = $con->exec( $sql ); echo "Foram encontrados " . $resultado->fieldCount() . " colunas na tabela."; exit; ?>
最后插入的ID SQLAnywhereClient::lastInsertId()
返回最后插入的ID的值
<?php $sql = "INSERT INTO Usuarios nome, email VALUES ('Carlos', 'contato@carlosgartner.com.br')"; if ($con->exec( $sql )) { echo $con->lastInsertId(); } exit; ?>
最后插入的ID SQLAnywhereClient::lastInsertId()
返回最后插入的ID的值
<?php $sql = "INSERT INTO Usuarios nome, email VALUES ('Carlos', 'contato@carlosgartner.com.br')"; if ($con->exec( $sql )) { echo $con->lastInsertId(); } exit; ?>
预处理语句 SQLAnywhereClient::prepare()
使用 ?
预处理SQL
<?php $sql = "INSERT INTO Usuarios nome, email VALUES (?, ?)"; $stmnt = $con->prepare( $sql ); if ($stmnt->execute(array('Carlos', 'contato@carlosgartner.com.br'))) { echo $con->lastInsertId(); } exit; ?>
使用参数名称
<?php $sql = "INSERT INTO Usuarios nome, email VALUES (:nome, :email)"; $stmnt = $con->prepare( $sql ); if ($stmnt->execute(array( ':nome' => 'Carlos', ':email' => 'contato@carlosgartner.com.br' ))) { echo $con->lastInsertId(); } exit; ?>
绑定参数 SQLAnywherePrepared::bindParam()
<?php $sql = "INSERT INTO Usuarios nome, email VALUES (:nome, :email)"; $stmnt = $con->prepare( $sql ); $nome = "Carlos A."; $email = "contato@carlosgartner.com.br"; $stmnt->bindParam(':nome', $nome); $stmnt->bindParam(':email', $email); if ($stmnt->execute()) { echo $con->lastInsertId(); } exit; ?>