Vergleich inc/db_sqlite3.php - 1.4.0 - 1.4.11

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 6Zeile 6
 * Website: http://www.mybboard.com
* License: http://www.mybboard.com/license.php
*

 * Website: http://www.mybboard.com
* License: http://www.mybboard.com/license.php
*

 * $Id: db_sqlite3.php 3902 2008-06-11 02:21:37Z Tikitiki $

 * $Id: db_sqlite3.php 4335 2009-03-22 18:34:20Z Tikitiki $

 */

class DB_SQLite3

 */

class DB_SQLite3

Zeile 180Zeile 180
				}
else
{

				}
else
{

					$query = $this->alter_table_parse($tablename, $alterdefs);

					$query = $this->alter_table_parse($tablename, $alterdefs, $string);

				}
}
}

				}
}
}

Zeile 616Zeile 616
			VALUES ('".$values."')
");
return $this->insert_id();

			VALUES ('".$values."')
");
return $this->insert_id();

 
	}

/**
* Build an insert query from an array.
*
* @param string The table name to perform the query on.
* @param array An array of fields and their values.
* @return string The query string.
*/
function build_insert_query($table, $array)
{
$comma = $query1 = $query2 = "";
if(!is_array($array))
{
return false;
}
$comma = "";
$query1 = "";
$query2 = "";
foreach($array as $field => $value)
{
$query1 .= $comma.$field;
$query2 .= $comma."'".$value."'";
$comma = ", ";
}
return "INSERT
INTO ".TABLE_PREFIX.$table." (".$query1.")
VALUES (".$query2.")";

	}

/**

	}

/**

Zeile 626Zeile 654
	 * @return int The insert ID if available
*/
function insert_query_multiple($table, $array)

	 * @return int The insert ID if available
*/
function insert_query_multiple($table, $array)

	{
if(!is_array($array))

	{
if(!is_array($array))

		{
return false;
}

		{
return false;
}

Zeile 656Zeile 684
	 * @param array An array of fields and their values.
* @param string An optional where clause for the query.
* @param string An optional limit clause for the query.

	 * @param array An array of fields and their values.
* @param string An optional where clause for the query.
* @param string An optional limit clause for the query.

	 * @return resource The query data.


































	 * @return resource The query data.
*/
function update_query($table, $array, $where="", $limit="")
{
if(!is_array($array))
{
return false;
}

$comma = "";
$query = "";

foreach($array as $field => $value)
{
$query .= $comma.$field."='".$value."'";
$comma = ", ";
}

if(!empty($where))
{
$query .= " WHERE $where";
}

return $this->query("UPDATE {$this->table_prefix}$table SET $query");
}

/**
* Build an update query from an array.
*
* @param string The table name to perform the query on.
* @param array An array of fields and their values.
* @param string An optional where clause for the query.
* @param string An optional limit clause for the query.
* @return string The query string.

	 */

	 */

	function update_query($table, $array, $where="", $limit="")

	function build_update_query($table, $array, $where="", $limit="")

	{
if(!is_array($array))
{
return false;

	{
if(!is_array($array))
{
return false;

		}

		}

		
$comma = "";
$query = "";

		
$comma = "";
$query = "";

Zeile 672Zeile 733
		{
$query .= $comma.$field."='".$value."'";
$comma = ", ";

		{
$query .= $comma.$field."='".$value."'";
$comma = ", ";

		}


		}


		if(!empty($where))
{
$query .= " WHERE $where";
}


		if(!empty($where))
{
$query .= " WHERE $where";
}


		return $this->query("UPDATE {$this->table_prefix}$table SET $query");

		return "UPDATE {$this->table_prefix}{$table} SET {$query}";

	}

/**

	}

/**

Zeile 689Zeile 750
	 * @param string An optional where clause for the query.
* @param string An optional limit clause for the query.
* @return resource The query data.

	 * @param string An optional where clause for the query.
* @param string An optional limit clause for the query.
* @return resource The query data.

	 */

	 */

	function delete_query($table, $where="", $limit="")
{
$query = "";
if(!empty($where))
{
$query .= " WHERE $where";

	function delete_query($table, $where="", $limit="")
{
$query = "";
if(!empty($where))
{
$query .= " WHERE $where";

		}


		}


		return $this->query("DELETE FROM {$this->table_prefix}$table $query");
}

/**
* Escape a string

		return $this->query("DELETE FROM {$this->table_prefix}$table $query");
}

/**
* Escape a string

	 *
* @param string The string to be escaped.
* @return string The escaped string.

	 *
* @param string The string to be escaped.
* @return string The escaped string.

	 */
function escape_string($string)
{

	 */
function escape_string($string)
{

Zeile 720Zeile 781
	function free_result($query)
{
return;

	function free_result($query)
{
return;

	}

/**

	}

/**

	 * Escape a string used within a like command.
*
* @param string The string to be escaped.

	 * Escape a string used within a like command.
*
* @param string The string to be escaped.

Zeile 731Zeile 792
	function escape_string_like($string)
{
return $this->escape_string(str_replace(array('%', '_') , array('\\%' , '\\_') , $string));

	function escape_string_like($string)
{
return $this->escape_string(str_replace(array('%', '_') , array('\\%' , '\\_') , $string));

	}

	}


/**
* Gets the current version of SQLLite.


/**
* Gets the current version of SQLLite.

Zeile 739Zeile 800
	 * @return string Version of MySQL.
*/
function get_version()

	 * @return string Version of MySQL.
*/
function get_version()

	{

	{

		if($this->version)
{
return $this->version;

		if($this->version)
{
return $this->version;

Zeile 757Zeile 818
	function optimize_table($table)
{
$this->query("VACUUM ".$this->table_prefix.$table."");

	function optimize_table($table)
{
$this->query("VACUUM ".$this->table_prefix.$table."");

	}

/**

	}

/**

	 * Analyzes a specific table.
*
* @param string The name of the table to be analyzed.
*/
function analyze_table($table)

	 * Analyzes a specific table.
*
* @param string The name of the table to be analyzed.
*/
function analyze_table($table)

	{

	{

		$this->query("ANALYZE ".$this->table_prefix.$table."");
}


		$this->query("ANALYZE ".$this->table_prefix.$table."");
}


Zeile 774Zeile 835
	 *
* @param string The name of the table.
* @return string The MySQL command to create the specified table.

	 *
* @param string The name of the table.
* @return string The MySQL command to create the specified table.

	 */

	 */

	function show_create_table($table)
{
$old_tbl_prefix = $this->table_prefix;

	function show_create_table($table)
{
$old_tbl_prefix = $this->table_prefix;

Zeile 783Zeile 844
		$this->set_table_prefix($old_tbl_prefix);

return $this->fetch_field($query, 'sql');

		$this->set_table_prefix($old_tbl_prefix);

return $this->fetch_field($query, 'sql');

	}

	}


/**
* Show the "show fields from" command for a specific table.


/**
* Show the "show fields from" command for a specific table.

Zeile 795Zeile 856
	{
$old_tbl_prefix = $this->table_prefix;
$this->set_table_prefix("");

	{
$old_tbl_prefix = $this->table_prefix;
$this->set_table_prefix("");

		$query = $this->simple_select("sqlite_master", "sql", "type = 'table' AND name = '{$this->table_prefix}{$table}'");

		$query = $this->simple_select("sqlite_master", "sql", "type = 'table' AND name = '{$old_tbl_prefix}{$table}'");

		$this->set_table_prefix($old_tbl_prefix);
$table = trim(preg_replace('#CREATE\s+TABLE\s+"?'.$this->table_prefix.$table.'"?#i', '', $this->fetch_field($query, "sql")));


		$this->set_table_prefix($old_tbl_prefix);
$table = trim(preg_replace('#CREATE\s+TABLE\s+"?'.$this->table_prefix.$table.'"?#i', '', $this->fetch_field($query, "sql")));


Zeile 828Zeile 889

/**
* Returns whether or not this database engine supports fulltext indexing.


/**
* Returns whether or not this database engine supports fulltext indexing.

	 *
* @param string The table to be checked.
* @return boolean True or false if supported or not.
*/

	 *
* @param string The table to be checked.
* @return boolean True or false if supported or not.
*/


function supports_fulltext($table)
{


function supports_fulltext($table)
{

Zeile 840Zeile 901

/**
* Returns whether or not this database engine supports boolean fulltext matching.


/**
* Returns whether or not this database engine supports boolean fulltext matching.

	 *

	 *

	 * @param string The table to be checked.
* @return boolean True or false if supported or not.
*/
function supports_fulltext_boolean($table)

	 * @param string The table to be checked.
* @return boolean True or false if supported or not.
*/
function supports_fulltext_boolean($table)

	{
return false;
}

/**

	{
return false;
}

/**

	 * Creates a fulltext index on the specified column in the specified table with optional index name.
*
* @param string The name of the table.

	 * Creates a fulltext index on the specified column in the specified table with optional index name.
*
* @param string The name of the table.

Zeile 857Zeile 918
	 * @param string The index name, optional.
*/
function create_fulltext_index($table, $column, $name="")

	 * @param string The index name, optional.
*/
function create_fulltext_index($table, $column, $name="")

	{
return false;

	{
return false;

	}

/**
* Drop an index with the specified name from the specified table

	}

/**
* Drop an index with the specified name from the specified table

	 *
* @param string The name of the table.
* @param string The name of the index.
*/

	 *
* @param string The name of the table.
* @param string The name of the index.
*/

	function drop_index($table, $name)

	function drop_index($table, $name)

	{

	{

		$this->query("ALTER TABLE {$this->table_prefix}$table DROP INDEX $name");

		$this->query("ALTER TABLE {$this->table_prefix}$table DROP INDEX $name");

 
	}

/**
* Checks to see if an index exists on a specified table
*
* @param string The name of the table.
* @param string The name of the index.
*/
function index_exists($table, $index)
{
return false;

	}

/**

	}

/**

Zeile 884Zeile 956
		if($table_prefix == false)
{
$table_prefix = "";

		if($table_prefix == false)
{
$table_prefix = "";

		}

		}

		else
{
$table_prefix = $this->table_prefix;

		else
{
$table_prefix = $this->table_prefix;

Zeile 900Zeile 972
		else
{
$this->query('DROP TABLE '.$table_prefix.$table);

		else
{
$this->query('DROP TABLE '.$table_prefix.$table);

		}
}
























































		}
}

/**
* Replace contents of table with values
*
* @param string The table
* @param array The values
* @param string The default field
* @param boolean Whether or not to return an insert id. True by default
*/
function replace_query($table, $replacements=array(), $default_field="", $insert_id=true)
{
$columns = '';
$values = '';
$comma = '';
foreach($replacements as $column => $value)
{
$columns .= $comma.$column;
$values .= $comma."'".$value."'";

$comma = ',';
}

if(empty($columns) || empty($values))
{
return false;
}

if($default_field == "")
{
return $this->write_query("REPLACE INTO {$this->table_prefix}{$table} ({$columns}) VALUES({$values})");
}
else
{
$update = false;
$query = $this->write_query("SELECT {$default_field} FROM {$this->table_prefix}{$table}");

while($column = $this->fetch_array($query))
{
if($column[$default_field] == $replacements[$default_field])
{
$update = true;
break;
}
}

if($update === true)
{
return $this->update_query($table, $replacements, "{$default_field}='".$replacements[$default_field]."'");
}
else
{
return $this->insert_query($table, $replacements, $insert_id);
}
}
}

	
/**
* Replace contents of table with values
*
* @param string The table

	
/**
* Replace contents of table with values
*
* @param string The table

	 * @param array The values
*/
function replace_query($table, $replacements=array())
{

	 * @param array The replacements
*/
function build_replace_query($table, $replacements=array(), $default_field="")
{

		$columns = '';
$values = '';
$comma = '';

		$columns = '';
$values = '';
$comma = '';

Zeile 918Zeile 1045
		{
$columns .= $comma.$column;
$values .= $comma."'".$value."'";

		{
$columns .= $comma.$column;
$values .= $comma."'".$value."'";

			

			

			$comma = ',';
}

if(empty($columns) || empty($values))
{
return false;

			$comma = ',';
}

if(empty($columns) || empty($values))
{
return false;

		}

		}

		

		

		return $this->query("REPLACE INTO {$this->table_prefix}{$table} ({$columns}) VALUES({$values})");



























		if($default_field == "")
{
return "REPLACE INTO {$this->table_prefix}{$table} ({$columns}) VALUES({$values})";
}
else
{
$update = false;
$query = $this->write_query("SELECT {$default_field} FROM {$this->table_prefix}{$table}");

while($column = $this->fetch_array($query))
{
if($column[$default_field] == $replacements[$default_field])
{
$update = true;
break;
}
}

if($update === true)
{
return $this->build_update_query($table, $replacements, "{$default_field}='".$replacements[$default_field]."'");
}
else
{
return $this->build_insert_query($table, $replacements, $insert_id);
}
}

	}

/**
* Sets the table prefix used by the simple select, insert, update and delete functions
*
* @param string The new table prefix

	}

/**
* Sets the table prefix used by the simple select, insert, update and delete functions
*
* @param string The new table prefix

	 */

	 */

	function set_table_prefix($prefix)
{
$this->table_prefix = $prefix;

	function set_table_prefix($prefix)
{
$this->table_prefix = $prefix;

Zeile 942Zeile 1095
	
/**
* Fetched the total size of all mysql tables or a specific table

	
/**
* Fetched the total size of all mysql tables or a specific table

	 *

	 *

	 * @param string The table (optional) (ignored)
* @return integer the total size of all mysql tables or a specific table
*/
function fetch_size($table='')
{
global $config, $lang;

	 * @param string The table (optional) (ignored)
* @return integer the total size of all mysql tables or a specific table
*/
function fetch_size($table='')
{
global $config, $lang;

		

		

		$total = @filesize($config['database']['database']);
if(!$total || $table != '')
{

		$total = @filesize($config['database']['database']);
if(!$total || $table != '')
{

Zeile 964Zeile 1117
	 * @param string The table (optional)
* @return integer the total size of all mysql tables or a specific table
*/

	 * @param string The table (optional)
* @return integer the total size of all mysql tables or a specific table
*/

	function alter_table_parse($table, $alterdefs)

	function alter_table_parse($table, $alterdefs, $fullquery="")

	{

	{

 
		if(!$fullquery)
{
$fullquery = " ... {$alterdefs}";
}

if(!defined("TIME_NOW"))
{
define("TIME_NOW", time());
}


		if($alterdefs != '')
{
$result = $this->query("SELECT sql,name,type FROM sqlite_master WHERE tbl_name = '{$table}' ORDER BY type DESC");

		if($alterdefs != '')
{
$result = $this->query("SELECT sql,name,type FROM sqlite_master WHERE tbl_name = '{$table}' ORDER BY type DESC");

Zeile 1041Zeile 1204
								else
{
$createtesttableSQL = substr($createtesttableSQL, 0, $severpos-(strpos($createtesttableSQL, ',') ? 0 : 1)).$insertval.')';

								else
{
$createtesttableSQL = substr($createtesttableSQL, 0, $severpos-(strpos($createtesttableSQL, ',') ? 0 : 1)).$insertval.')';

								}
}
else
{
$this->error($alterdefs, 'unknown column "'.$defparts[1].'" in "'.$table.'"', E_USER_WARNING);
return false;

								}
}
else
{
$this->error($fullquery, 'unknown column "'.$defparts[1].'" in "'.$table.'"', E_USER_WARNING);
return false;

							}
break;
case 'drop':
if(sizeof($defparts) < 2)
{

							}
break;
case 'drop':
if(sizeof($defparts) < 2)
{

								$this->error($alterdefs, 'near "'.$defparts[0].($defparts[1] ? ' '.$defparts[1] : '').'": syntax error');

								$this->error($fullquery, 'near "'.$defparts[0].($defparts[1] ? ' '.$defparts[1] : '').'": syntax error');

								return false;
}


								return false;
}


Zeile 1073Zeile 1236
							}
else
{

							}
else
{

								$this->error($alterdefs, 'unknown column "'.$defparts[1].'" in "'.$table.'"');

								$this->error($fullquery, 'unknown column "'.$defparts[1].'" in "'.$table.'"');

								return false;
}
break;
default:

								return false;
}
break;
default:

							$this->error($alterdefs, 'near "'.$prevword.'": syntax error');

							$this->error($fullquery, 'near "'.$prevword.'": syntax error');

							return false;
}


							return false;
}


Zeile 1122Zeile 1285
			}
else
{

			}
else
{

				$this->error($alterdefs, 'no such table: '.$table);

				$this->error($fullquery, 'no such table: '.$table);

				return false;
}
return true;

				return false;
}
return true;

Zeile 1189Zeile 1352
	}
}


	}
}


if(!class_exists('databaseEngine'))
{
class databaseEngine extends DB_SQLite3 {
}
}

 
?>

?>