Vergleich inc/db_pdo.php - 1.8.5 - 1.8.29

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 8Zeile 8
 *
*/


 *
*/


class dbpdoEngine {

/**

class dbpdoEngine
{
/**

	 * The database class to store PDO objects

	 * The database class to store PDO objects

	 *
* @var object
*/
public $db;


	 *
* @var PDO
*/
private $db;


	/**
* The last query resource that ran
*

	/**
* The last query resource that ran
*

	 * @var object

	 * @var PDOStatement

	 */

	 */

	public $last_query = "";

public $seek_array = array();

public $queries = 0;




	public $last_query;

/**
* Array used to seek through result sets. This is used when using the `fetch_field` method with a row specified.
*
* @var array Array keyed by object hashes for {@see PDOStatement} instances.
*/
private $seek_array = array();


/**
* Connect to the database.
*


/**
* Connect to the database.
*

	 * @param string The database DSN.
* @param string The database username. (depends on DSN)
* @param string The database user's password. (depends on DSN)
* @param array The databases driver options (optional)
* @return boolean True on success


	 * @param string $dsn The database DSN.
* @param string $username The database username. (depends on DSN)
* @param string $password The database user's password. (depends on DSN)
* @param array $driver_options The databases driver options (optional)
*
* @throws Exception Thrown when failing to connect to the database.

	 */
function __construct($dsn, $username="", $password="", $driver_options=array())
{
try
{

	 */
function __construct($dsn, $username="", $password="", $driver_options=array())
{
try
{

 
			$driver_options = array_merge(
$driver_options,
array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false,
)
);


			$this->db = new PDO($dsn, $username, $password, $driver_options);
}
catch(PDOException $exception)
{

			$this->db = new PDO($dsn, $username, $password, $driver_options);
}
catch(PDOException $exception)
{

    		die('Connection failed: '.$exception->getMessage());

			throw new Exception('Unable to connect to database server');

		}

		}


$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

return true;

 
	}

/**
* Query the database.
*

	}

/**
* Query the database.
*

	 * @param string The query SQL.
* @return resource The query data.


	 * @param string $string The query SQL.
*
* @return PDOStatement The query data.

	 */

	 */

	function query($string)

	public function query($string)

	{

	{

		++$this->queries;


 
		$query = $this->db->query($string, PDO::FETCH_BOTH);
$this->last_query = $query;

		$query = $this->db->query($string, PDO::FETCH_BOTH);
$this->last_query = $query;


$query->guid = $this->queries;

 

return $query;
}


return $query;
}





	/**
* Return a result array for a query.
*

	/**
* Return a result array for a query.
*

	 * @param resource The query resource.


	 * @param PDOStatement $query The query resource.
* @param int $resulttype One of PDO's constants: FETCH_ASSOC, FETCH_BOUND, FETCH_CLASS, FETCH_INTO, FETCH_LAZY, FETCH_NAMED, FETCH_NUM, FETCH_OBJ or FETCH_BOTH

	 * @return array The array of results.
*/

	 * @return array The array of results.
*/

	function fetch_array($query, $resulttype=PDO::FETCH_BOTH)

	public function fetch_array($query, $resulttype=PDO::FETCH_BOTH)

	{

	{

		if(!is_object($query))
{
return;
}


 
		switch($resulttype)
{
case PDO::FETCH_ASSOC:

		switch($resulttype)
{
case PDO::FETCH_ASSOC:

Zeile 100Zeile 101
				break;
}


				break;
}


		if($this->seek_array[$query->guid])
{
$array = $query->fetch($resulttype, $this->seek[$query->guid]['offset'], $this->seek[$query->guid]['row']);
}



		$hash = spl_object_hash($query);

if(isset($this->seek_array[$hash]))
{
$array = $query->fetch($resulttype, $this->seek_array[$hash]['offset'], $this->seek_array[$hash]['row']);
}

		else
{
$array = $query->fetch($resulttype);
}

		else
{
$array = $query->fetch($resulttype);
}





		return $array;

		return $array;

	}

/**

	}

/**

	 * Moves internal row pointer to the next row

	 * Moves internal row pointer to the next row

	 *
* @param resource The query resource.
* @param int The pointer to move the row to.
*/
function seek($query, $row)
{
if(!is_object($query))
{
return;
}

$this->seek_array[$query->guid] = array('offset' => PDO::FETCH_ORI_ABS, 'row' => $row);

	 *
* @param PDOStatement $query The query resource.
* @param int $row The pointer to move the row to.
*/
public function seek($query, $row)
{
$hash = spl_object_hash($query);

$this->seek_array[$hash] = array('offset' => PDO::FETCH_ORI_ABS, 'row' => $row);




	}

/**
* Return the number of rows resulting from a query.
*

	}

/**
* Return the number of rows resulting from a query.
*

	 * @param resource The query resource.

	 * @param PDOStatement $query The query resource.

	 * @return int The number of rows in the result.
*/

	 * @return int The number of rows in the result.
*/

	function num_rows($query)

	public function num_rows($query)

	{

	{

		if(!is_object($query))
{
return;
}

if(is_numeric(stripos($query->queryString, 'SELECT')))

		if(stripos($query->queryString, 'SELECT') !== false)






		{
$query = $this->db->query($query->queryString);
$result = $query->fetchAll();
return count($result);
}
else

		{
$query = $this->db->query($query->queryString);
$result = $query->fetchAll();
return count($result);
}
else

		{

		{

			return $query->rowCount();
}

			return $query->rowCount();
}

	}


	}


	/**
* Return the last id number of inserted data.
*

	/**
* Return the last id number of inserted data.
*

	 * @param string The name of the insert id to check. (Optional)

	 * @param string|null $name The name of the insert id to check. (Optional)

	 * @return int The id number.
*/

	 * @return int The id number.
*/

	function insert_id($name="")

	public function insert_id($name=null)

	{
return $this->db->lastInsertId($name);
}

	{
return $this->db->lastInsertId($name);
}

Zeile 167Zeile 162
	/**
* Return an error number.
*

	/**
* Return an error number.
*

	 * @param resource The query resource.

	 * @param PDOStatement $query The query resource.

	 * @return int The error number of the current error.

	 * @return int The error number of the current error.

	 */
function error_number($query)
{
if(!is_object($query) || !method_exists($query, "errorCode"))
{
return;
}

$errorcode = $query->errorCode();

return $errorcode;
}

/**
* Return an error string.
*
* @param resource The query resource.
* @return int The error string of the current error.
*/
function error_string($query)
{
if(!is_object($query) || !method_exists($query, "errorInfo"))

	 */
public function error_number($query)
{
if(!method_exists($query, "errorCode"))



















		{

		{

			return $this->db->errorInfo();

			return 0;

		}

		}

		return $query->errorInfo();



return $query->errorCode();

	}

/**

	}

/**

	 * Roll back the last query.

	 * Return an error string.

	 *

	 *

	 * @return boolean true on success, false otherwise.


	 * @param PDOStatement $query The query resource.
* @return array The error string of the current error.

	 */

	 */

	function roll_back()

	public function error_string($query)

	{

	{

		//return $this->db->rollBack();






		if(!method_exists($query, "errorInfo"))
{
return $this->db->errorInfo();
}

return $query->errorInfo();

	}

/**
* Returns the number of affected rows in a query.
*

	}

/**
* Returns the number of affected rows in a query.
*

 
	 * @param PDOStatement $query

	 * @return int The number of affected rows.
*/

	 * @return int The number of affected rows.
*/

	function affected_rows($query)

	public function affected_rows($query)

	{
return $query->rowCount();
}

	{
return $query->rowCount();
}

Zeile 220Zeile 205
	/**
* Return the number of fields.
*

	/**
* Return the number of fields.
*

	 * @param resource The query resource.

	 * @param PDOStatement $query The query resource.

	 * @return int The number of fields.
*/

	 * @return int The number of fields.
*/

	function num_fields($query)

	public function num_fields($query)

	{
return $query->columnCount();
}


	{
return $query->columnCount();
}


	function escape_string($string)







	/**
* Escape a string according to the pdo escape format.
*
* @param string $string The string to be escaped.
* @return string The escaped string.
*/
public function escape_string($string)

	{
$string = $this->db->quote($string);


	{
$string = $this->db->quote($string);


		// Remove ' from the begginging of the string and at the end of the string, because we already use it in insert_query

		// Remove ' from the beginning of the string and at the end of the string, because we already use it in insert_query

		$string = substr($string, 1);
$string = substr($string, 0, -1);


		$string = substr($string, 1);
$string = substr($string, 0, -1);


Zeile 242Zeile 233
	/**
* Return a selected attribute
*

	/**
* Return a selected attribute
*

	 * @param constant The attribute to check.

	 * @param string $attribute The attribute to check.

	 * @return string The value of the attribute.
*/

	 * @return string The value of the attribute.
*/

	function get_attribute($attribute)

	public function get_attribute($attribute)

	{

	{

		$attribute = $this->db->getAttribute(constant("PDO::".$attribute.""));

		$attribute = $this->db->getAttribute(constant("PDO::{$attribute}"));


return $attribute;
}


return $attribute;
}