Помогите разобраться с подключение классов ipb... Хотелось бы использовать все те функции для обращение к бд... Есть скрипт, прописываю в нем следующее | Код | define( 'IPB_THIS_SCRIPT', 'public' ); require_once( './initdata.php' );/*noLibHook*/ require( DOC_IPS_ROOT_PATH . 'conf_global.php' ); //$db = mysql_connect($INFO['sql_host'],$INFO['sql_user'],$INFO['sql_pass']); // mysql_select_db($INFO['sql_database'],$db); //mysql_query('SET names '.$INFO['sql_charset']); require( IPS_KERNEL_PATH . 'classDbMysql.php' );
$db = new interfaceDb;
$db->build( array( 'select' => '*', 'from' => 'table', 'where' => 'id=2 and mid=1', 'order' => 'date DESC', 'limit' => array( 0, 30 ) ) ); $db->execute();
|
Ответ Fatal error: Call to a member function build() on a non-object i Что содержит classDbMysql.php | Код | if( !defined('REPLACE_TYPE') ) define( 'REPLACE_TYPE', 2 );
if ( ! class_exists( 'dbMain' ) ) require_once( dirname( __FILE__ ) . '/classDb.php' );/*noLibHook*/
abstract class db_main_mysql extends dbMain {
protected $cached_fields = array();
protected $cached_tables = array();
public $fieldNameEncapsulate = '`';
public function getConnectionId() { return $this->connection_id; }
/** * Delete data from a table * * @param string Table name * @param string [Optional] Where clause * @param string [Optional] Order by * @param array [Optional] Limit clause * @param boolean [Optional] Run on shutdown * @return @e resource */ public function delete( $table, $where='', $orderBy='', $limit=array(), $shutdown=false ) { if ( ! $where ) { $this->cur_query = "TRUNCATE TABLE " . $this->obj['sql_tbl_prefix'] . $table; } else { $this->cur_query = "DELETE FROM " . $this->obj['sql_tbl_prefix'] . $table . " WHERE " . $where; }
if ( $where AND $orderBy ) $this->_buildOrderBy( $orderBy );
if ( $where AND $limit AND is_array( $limit ) ) $this->_buildLimit( $limit[0], $limit[1] ); $result = $this->_determineShutdownAndRun( $this->cur_query, $shutdown );
$this->cur_query = '';
return $result; }
......
|
Вот, что содержит файл classDb.php | Код | /** * <pre> * Invision Power Services * IP.Board v3.4.6 * Database Abstraction Layer * Last Updated: $Date: 2013-05-20 16:38:23 -0400 (Mon, 20 May 2013) $ * </pre> * * @author $Author: bfarber $ * @copyright (c) 2001 - 2009 Invision Power Services, Inc. * @license http://www.invisionpower.com/company/standards.php#license * @package IP.Board * @subpackage Kernel * @link http://www.invisionpower.com * @since Monday 28th February 2005 16:46 * @version $Revision: 12261 $ * * Basic Usage Examples * <code> * $db = new db_driver(); * Update: * $db->update( 'table', array( 'field' => 'value', 'field2' => 'value2' ), 'id=1' ); * Insert * $db->insert( 'table', array( 'field' => 'value', 'field2' => 'value2' ) ); * Delete * $db->delete( 'table', 'id=1' ); * Select * $db->build( array( 'select' => '*', * 'from' => 'table', * 'where' => 'id=2 and mid=1', * 'order' => 'date DESC', * 'limit' => array( 0, 30 ) ) ); * $db->execute(); * while( $row = $db->fetch() ) { .... } * Select with join * $db->build( array( 'select' => 'd.*', * 'from' => array( 'dnames_change' => 'd' ), * 'where' => 'dname_member_id='.$id, * 'add_join' => array( 0 => array( 'select' => 'm.members_display_name', * 'from' => array( 'members' => 'm' ), * 'where' => 'm.member_id=d.dname_member_id', * 'type' => 'inner' ) ), * 'order' => 'dname_date DESC' ) ); * $db->execute(); * </code> */
/** * This can be overridden by using * $DB->allow_sub_select = 1; * before any query construct */
define( 'IPS_DB_ALLOW_SUB_SELECTS', 0 );
/** * Database interface */ interface interfaceDb {
public function connect(); public function getConnectionId(); public function disconnect(); public function fetchSqlString();
/** * Delete data from a table * * @param string Table name * @param string [Optional] Where clause * @param string [Optional] Order by * @param array [Optional] Limit clause * @param boolean [Optional] Run on shutdown * @return @e resource */ public function delete( $table, $where='', $orderBy='', $limit=array(), $shutdown=false );
....
|
Подскажите пожалуйста. В каком порядке необходимо прописывать, что нужно вызвать... Подгрузил скрипты, в них классы. А какой именно класс необходимо вызвать, создать объект. Чтобы все выше написанное заработало Прописываю $th = new interfaceDb; Но и так ошибка... Это сообщение отредактировал(а) Predator199 - 28.7.2014, 10:18
|