Improve code coverage
This commit is contained in:
parent
44dc7f341f
commit
bed0d1bb04
@ -83,26 +83,19 @@ abstract class DB_PDO extends PDO {
|
|||||||
* @param string $sql
|
* @param string $sql
|
||||||
* @param array $data
|
* @param array $data
|
||||||
* @return mixed PDOStatement / FALSE
|
* @return mixed PDOStatement / FALSE
|
||||||
|
* @throws InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function prepare_query($sql, $data)
|
public function prepare_query($sql, $data)
|
||||||
{
|
{
|
||||||
// Prepare the sql
|
// Prepare the sql
|
||||||
$query = $this->prepare($sql);
|
$query = $this->prepare($sql);
|
||||||
|
|
||||||
if( ! (is_object($query) || is_resource($query)))
|
|
||||||
{
|
|
||||||
$this->get_last_error();
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the statement in the class variable for easy later access
|
// Set the statement in the class variable for easy later access
|
||||||
$this->statement = $query;
|
$this->statement = $query;
|
||||||
|
|
||||||
|
|
||||||
if( ! (is_array($data) || is_object($data)))
|
if( ! (is_array($data) || is_object($data)))
|
||||||
{
|
{
|
||||||
trigger_error("Invalid data argument");
|
throw new InvalidArgumentException("Invalid data argument");
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind the parameters
|
// Bind the parameters
|
||||||
@ -114,16 +107,9 @@ abstract class DB_PDO extends PDO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$res = $query->bindValue($k, $value);
|
$res = $query->bindValue($k, $value);
|
||||||
|
|
||||||
if( ! $res)
|
|
||||||
{
|
|
||||||
trigger_error("Parameter not successfully bound");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $query;
|
return $query;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
@ -164,20 +150,6 @@ abstract class DB_PDO extends PDO {
|
|||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the last error for the current database connection
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function get_last_error()
|
|
||||||
{
|
|
||||||
list($i1, $i2, $i3) = $this->errorInfo();
|
|
||||||
|
|
||||||
echo "Error: <pre>{$i1}:{$i2}\n{$i3}</pre>";
|
|
||||||
}
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Quote database table name, and set prefix
|
* Quote database table name, and set prefix
|
||||||
*
|
*
|
||||||
@ -289,14 +261,11 @@ abstract class DB_PDO extends PDO {
|
|||||||
*/
|
*/
|
||||||
protected function _quote($str)
|
protected function _quote($str)
|
||||||
{
|
{
|
||||||
// Don't quote numbers
|
// Don't add additional quotes, or quote numbers
|
||||||
if ( ! is_string($str) && is_numeric($str))
|
if (strpos($str, $this->escape_char) === 0 ||
|
||||||
{
|
strrpos($str, $this->escape_char) === 0 ||
|
||||||
return $str;
|
( ! is_string($str) && is_numeric($str))
|
||||||
}
|
)
|
||||||
|
|
||||||
// Don't add additional quotes
|
|
||||||
if (strpos($str, $this->escape_char) === 0 || strrpos($str, $this->escape_char) === 0)
|
|
||||||
{
|
{
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
@ -47,10 +47,7 @@ abstract class DB_Util {
|
|||||||
*/
|
*/
|
||||||
public function __call($method, $args)
|
public function __call($method, $args)
|
||||||
{
|
{
|
||||||
if (method_exists($this->conn, $method))
|
return call_user_func_array(array($this->conn, $method), $args);
|
||||||
{
|
|
||||||
return call_user_func_array(array($this->conn, $method), $args);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
@ -91,14 +91,7 @@ class Query_Parser {
|
|||||||
|
|
||||||
foreach($array as $row)
|
foreach($array as $row)
|
||||||
{
|
{
|
||||||
if (is_array($row))
|
$new_array[] = (is_array($row)) ? $row[0] : $row;
|
||||||
{
|
|
||||||
$new_array[] = $row[0];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$new_array[] = $row;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $new_array;
|
return $new_array;
|
||||||
|
@ -64,10 +64,7 @@ class Firebird extends DB_PDO {
|
|||||||
$this->conn = fbird_connect($dbpath, $user, $pass, 'utf-8', 0);
|
$this->conn = fbird_connect($dbpath, $user, $pass, 'utf-8', 0);
|
||||||
|
|
||||||
// Throw an exception to make this match other pdo classes
|
// Throw an exception to make this match other pdo classes
|
||||||
if ( ! is_resource($this->conn))
|
if ( ! is_resource($this->conn)) throw new PDOException(fbird_errmsg());
|
||||||
{
|
|
||||||
throw new PDOException(fbird_errmsg());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load these classes here because this
|
// Load these classes here because this
|
||||||
// driver does not call the constructor
|
// driver does not call the constructor
|
||||||
@ -83,14 +80,6 @@ class Firebird extends DB_PDO {
|
|||||||
$this->util = new $class($this);
|
$this->util = new $class($this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Clean up database connections
|
|
||||||
*/
|
|
||||||
public function __destruct()
|
|
||||||
{
|
|
||||||
fbird_close($this->conn);
|
|
||||||
}
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -116,20 +105,15 @@ class Firebird extends DB_PDO {
|
|||||||
*/
|
*/
|
||||||
public function query($sql)
|
public function query($sql)
|
||||||
{
|
{
|
||||||
if (empty($sql))
|
if (empty($sql)) throw new PDOException("Query method requires an sql query!");
|
||||||
{
|
|
||||||
throw new PDOException("Query method requires an sql query!");
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->statement_link = (isset($this->trans))
|
$this->statement_link = (isset($this->trans))
|
||||||
? fbird_query($this->trans, $sql)
|
? fbird_query($this->trans, $sql)
|
||||||
: fbird_query($this->conn, $sql);
|
: fbird_query($this->conn, $sql);
|
||||||
|
|
||||||
// Throw the error as a exception
|
// Throw the error as a exception
|
||||||
if ($this->statement_link === FALSE)
|
$err_string = fbird_errmsg() . "Last query:" . $this->last_query;
|
||||||
{
|
if ($this->statement_link === FALSE) throw new PDOException($err_string);
|
||||||
throw new PDOException(fbird_errmsg() . "Last query:" . $this->last_query);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->statement = new FireBird_Result($this->statement_link);
|
$this->statement = new FireBird_Result($this->statement_link);
|
||||||
|
|
||||||
@ -151,10 +135,7 @@ class Firebird extends DB_PDO {
|
|||||||
$this->statement_link = fbird_prepare($this->conn, $query);
|
$this->statement_link = fbird_prepare($this->conn, $query);
|
||||||
|
|
||||||
// Throw the error as an exception
|
// Throw the error as an exception
|
||||||
if ($this->statement_link === FALSE)
|
if ($this->statement_link === FALSE) throw new PDOException(fbird_errmsg());
|
||||||
{
|
|
||||||
throw new PDOException(fbird_errmsg());
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->statement = new FireBird_Result($this->statement_link);
|
$this->statement = new FireBird_Result($this->statement_link);
|
||||||
|
|
||||||
@ -170,12 +151,7 @@ class Firebird extends DB_PDO {
|
|||||||
*/
|
*/
|
||||||
public function beginTransaction()
|
public function beginTransaction()
|
||||||
{
|
{
|
||||||
if(($this->trans = fbird_trans($this->conn)) !== NULL)
|
return (($this->trans = fbird_trans($this->conn)) !== NULL) ? TRUE : NULL;
|
||||||
{
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
@ -38,6 +38,7 @@ class MySQL extends DB_PDO {
|
|||||||
*/
|
*/
|
||||||
public function __construct($dsn, $username=null, $password=null, $options=array())
|
public function __construct($dsn, $username=null, $password=null, $options=array())
|
||||||
{
|
{
|
||||||
|
// Automatically set the charset to UTF-8
|
||||||
if (defined('PDO::MYSQL_ATTR_INIT_COMMAND'))
|
if (defined('PDO::MYSQL_ATTR_INIT_COMMAND'))
|
||||||
{
|
{
|
||||||
$options = array_merge($options, array(
|
$options = array_merge($options, array(
|
||||||
@ -45,11 +46,6 @@ class MySQL extends DB_PDO {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strpos($dsn, 'mysql') === FALSE)
|
|
||||||
{
|
|
||||||
$dsn = 'mysql:'.$dsn;
|
|
||||||
}
|
|
||||||
|
|
||||||
parent::__construct($dsn, $username, $password, $options);
|
parent::__construct($dsn, $username, $password, $options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,11 +31,6 @@ class PgSQL extends DB_PDO {
|
|||||||
*/
|
*/
|
||||||
public function __construct($dsn, $username=null, $password=null, $options=array())
|
public function __construct($dsn, $username=null, $password=null, $options=array())
|
||||||
{
|
{
|
||||||
if (strpos($dsn, 'pgsql') === FALSE)
|
|
||||||
{
|
|
||||||
$dsn = 'pgsql:'.$dsn;
|
|
||||||
}
|
|
||||||
|
|
||||||
parent::__construct($dsn, $username, $password, $options);
|
parent::__construct($dsn, $username, $password, $options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,6 +30,22 @@ abstract class QBTest extends UnitTestCase {
|
|||||||
// ! Get Tests
|
// ! Get Tests
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
public function TestInvalidConnectionName()
|
||||||
|
{
|
||||||
|
if (empty($this->db)) return;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$db = Query('foo');
|
||||||
|
}
|
||||||
|
catch (InvalidArgumentException $e)
|
||||||
|
{
|
||||||
|
$this->assertTrue(TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
public function TestQueryFunctionAlias()
|
public function TestQueryFunctionAlias()
|
||||||
{
|
{
|
||||||
if (empty($this->db)) return;
|
if (empty($this->db)) return;
|
||||||
|
Loading…
Reference in New Issue
Block a user