⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icebb_db_store.php

📁 简介:IceBB是一个强大
💻 PHP
字号:
<?php/** * Emulates a PEAR database connection which is what the Auth_OpenID * library expects to use for its database storage. */class IceBB_OpenID_DBConnection extends Auth_OpenID_DatabaseConnection{	function IceBB_OpenID_DBConnection(&$datab)	{		$this->db           = &$datab;	}	function setFetchMode($mode)	{		// Not implemented; returned results will emulate PEAR's		// DB_FETCHMODE_ASSOC fetch mode.	}	function autoCommit($mode)	{		// Not implemented.	}	function query($sql,$params=array())	{		return $this->db->query(vsprintf($sql,$params));	}	function getOne($sql,$params=array())	{		$result			= $this->db->query(vsprintf($sql,$params));		if($result === false)		{		    return false;		}		else {		    $row		= $this->db->fetch_row($result);		    $keys		= array_keys($row);		    return $row[$keys[0]];		}	}	function getRow($sql,$params=array())	{		$result			= $this->db->query(vsprintf($sql,$params));		if($result === false)		{		    return false;		}		else {		    return $this->db->fetch_row($result);		}	}	function getAll($sql,$params=array())	{		$result			= $this->db->query(vsprintf($sql,$params));		if($result === false)		{		    return false;		}		else {		    $result_rows = array();		    for ($i = 0; $i < $this->db->get_num_rows($result); $i++) {		        $result_rows[] = $this->db->fetch_row($result);		    }		    return $result_rows;		}	}}/** * IceBB-compatible store implementation - relies on IceBB_OpenID_DBConnection */class IceBB_DB_Store extends Auth_OpenID_MySQLStore{	var $conn;	function IceBB_DB_Store()	{		global $db;				$conn			    = new IceBB_OpenID_DBConnection($db);		parent::Auth_OpenID_MySQLStore(			$conn,			'icebb_openid_associations',			'icebb_openid_nonces'		);		$this->conn			= &$conn;		$this->createTables();	}		function tableExists($table_name)	{		//$q					= @mysql_query($sql, $this->conn->db_link);		return true;		//return $this->isError($q);	}    /**     * Returns true if the specified value is considered an error     * value.  Values returned from database calls will be passed to     * this function to make decisions.     */    function isError($value)    {        return $value === false;    }	/**	 * This function is responsible for encoding binary data to make	 * it safe for use in SQL.	 */	function blobEncode($blob)	{		return base64_encode($blob);	}	/**	 * Given encoded binary data, this function is responsible for	 * decoding it from its encoded representation.  Some backends	 * will not return encoded data, like this one, so no conversion	 * is necessary.	 */	function blobDecode($blob)	{		return base64_decode($blob);	}    function setSQL()    {        parent::setSQL();        $this->sql['assoc_table'] =            "CREATE TABLE %s (\n".            "  server_url BLOB,\n".            "  handle VARCHAR(255),\n".            "  secret VARCHAR(2047),\n".            "  issued INTEGER,\n".            "  lifetime INTEGER,\n".            "  assoc_type VARCHAR(64),\n".            "  PRIMARY KEY (server_url(255), handle)\n".            ") TYPE=InnoDB";        $this->sql['create_auth'] =            "INSERT INTO %s VALUES ('auth_key', '%%s')";        $this->sql['get_auth'] =            "SELECT value FROM %s WHERE setting = 'auth_key'";        $this->sql['set_assoc'] =            "REPLACE INTO %s VALUES ('%%s', '%%s', '%%s', %%d, %%d, '%%s')";        $this->sql['get_assocs'] =            "SELECT handle, secret, issued, lifetime, assoc_type FROM %s ".            "WHERE server_url = '%%s'";        $this->sql['get_assoc'] =            "SELECT handle, secret, issued, lifetime, assoc_type FROM %s ".            "WHERE server_url = '%%s' AND handle = '%%s'";        $this->sql['remove_assoc'] =            "DELETE FROM %s WHERE server_url = '%%s' AND handle = '%%s'";        $this->sql['add_nonce'] =            "REPLACE INTO %s (nonce, expires) VALUES ('%%s', %%d)";        $this->sql['get_nonce'] =            "SELECT * FROM %s WHERE nonce = '%%s'";        $this->sql['remove_nonce'] =            "DELETE FROM %s WHERE nonce = '%%s'";    }}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -