本文整理汇总了PHP中JDatabaseDriver::getPrefix方法的典型用法代码示例。如果您正苦于以下问题:PHP JDatabaseDriver::getPrefix方法的具体用法?PHP JDatabaseDriver::getPrefix怎么用?PHP JDatabaseDriver::getPrefix使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JDatabaseDriver
的用法示例。
在下文中一共展示了JDatabaseDriver::getPrefix方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* {@inheritdoc}
*
* @codeCoverageIgnore
*/
public function __construct($connection = null, $tablePrefix = null)
{
$this->_db = \JFactory::getDbo();
$tablePrefix = $this->_db->getPrefix();
$connection = $this->_db->getConnection();
parent::__construct($connection, $tablePrefix);
}
示例2: testGetPrefix
/**
* Tests the JDatabaseDriver::getPrefix method.
*
* @return void
*
* @since 11.4
*/
public function testGetPrefix()
{
$this->assertThat(
$this->db->getPrefix(),
$this->equalTo('&')
);
}
示例3: getGenericTableName
/**
* Get the generic name of the table, converting the database prefix to the wildcard string.
*
* @param string $table The name of the table.
*
* @return string The name of the table with the database prefix replaced with #__.
*
* @since 13.1
*/
protected function getGenericTableName($table)
{
$prefix = $this->db->getPrefix();
// Replace the magic prefix if found.
$table = preg_replace("|^{$prefix}|", '#__', $table);
return $table;
}
示例4: createTable
protected function createTable()
{
$this->debug('createTable: Check if plugin table exists.');
// Create plugin table if doesn't exist
$query = "SHOW TABLES LIKE '{$this->db->getPrefix()}kunenadiscuss'";
$this->db->setQuery($query);
if (!$this->db->loadResult()) {
KunenaError::checkDatabaseError();
$query = "CREATE TABLE IF NOT EXISTS `#__kunenadiscuss`\n\t\t\t\t\t(`content_id` int(11) NOT NULL default '0',\n\t\t\t\t\t `thread_id` int(11) NOT NULL default '0',\n\t\t\t\t\t PRIMARY KEY (`content_id`)\n\t\t\t\t\t )";
$this->db->setQuery($query);
$this->db->query();
KunenaError::checkDatabaseError();
$this->debug("Created #__kunenadiscuss cross reference table.");
// Migrate data from old FireBoard discussbot if it exists
$query = "SHOW TABLES LIKE '{$this->db->getPrefix()}fb_discussbot'";
$this->db->setQuery($query);
if ($this->db->loadResult()) {
$query = "REPLACE INTO `#__kunenadiscuss`\n\t\t\t\t\tSELECT `content_id` , `thread_id`\n\t\t\t\t\tFROM `#__fb_discussbot`";
$this->db->setQuery($query);
$this->db->query();
KunenaError::checkDatabaseError();
$this->debug("Migrated old data.");
}
}
}
示例5: mergeStructure
/**
* Merges the incoming structure definition with the existing structure.
*
* @return void
*
* @note Currently only supports XML format.
* @since 13.1
* @throws RuntimeException on error.
*/
public function mergeStructure()
{
$prefix = $this->db->getPrefix();
$tables = $this->db->getTableList();
if ($this->from instanceof SimpleXMLElement) {
$xml = $this->from;
} else {
$xml = new SimpleXMLElement($this->from);
}
// Get all the table definitions.
$xmlTables = $xml->xpath('database/table_structure');
foreach ($xmlTables as $table) {
// Convert the magic prefix into the real table name.
$tableName = (string) $table['name'];
$tableName = preg_replace('|^#__|', $prefix, $tableName);
if (in_array($tableName, $tables)) {
// The table already exists. Now check if there is any difference.
if ($queries = $this->getAlterTableSql($xml->database->table_structure)) {
// Run the queries to upgrade the data structure.
foreach ($queries as $query) {
$this->db->setQuery((string) $query);
$this->db->execute();
}
}
} else {
// This is a new table.
$sql = $this->xmlToCreate($table);
$this->db->setQuery((string) $sql);
$this->db->execute();
}
}
}
示例6: getTableFields
/**
* Get the columns from a database table.
*
* @param string Table name. If null current table is used
*
* @return mixed An array of the field names, or false if an error occurs.
*/
public function getTableFields($tableName = null)
{
static $cache = array();
static $tables = array();
// Make sure we have a list of tables in this db
if (empty($tables)) {
$tables = $this->_db->getTableList();
}
if (!$tableName) {
$tableName = $this->_tbl;
}
if (!array_key_exists($tableName, $cache)) {
// Lookup the fields for this table only once.
$name = $tableName;
$prefix = $this->_db->getPrefix();
if (substr($name, 0, 3) == '#__') {
$checkName = $prefix . substr($name, 3);
} else {
$checkName = $name;
}
if (!in_array($checkName, $tables)) {
// The table doesn't exist. Return false.
$cache[$tableName] = false;
} elseif (version_compare(JVERSION, '3.0', 'ge')) {
$fields = $this->_db->getTableColumns($name, false);
if (empty($fields)) {
$fields = false;
}
$cache[$tableName] = $fields;
} else {
$fields = $this->_db->getTableFields($name, false);
if (!isset($fields[$name])) {
$fields = false;
}
$cache[$tableName] = $fields[$name];
}
}
return $cache[$tableName];
}
示例7: getTableFields
/**
* Get the columns from a database table.
*
* @param string $tableName Table name. If null current table is used
*
* @return mixed An array of the field names, or false if an error occurs.
*/
public function getTableFields($tableName = null)
{
// Should I load the cached data?
$useCache = array_key_exists('use_table_cache', $this->config) ? $this->config['use_table_cache'] : false;
// Make sure we have a list of tables in this db
if (empty(self::$tableCache)) {
if ($useCache) {
// Try to load table cache from a cache file
$cacheData = FOFPlatform::getInstance()->getCache('tables', null);
// Unserialise the cached data, or set the table cache to empty
// if the cache data wasn't loaded.
if (!is_null($cacheData)) {
self::$tableCache = json_decode($cacheData, true);
} else {
self::$tableCache = array();
}
}
// This check is true if the cache data doesn't exist / is not loaded
if (empty(self::$tableCache)) {
self::$tableCache = $this->_db->getTableList();
if ($useCache) {
FOFPlatform::getInstance()->setCache('tables', json_encode(self::$tableCache));
}
}
}
// Make sure the cached table fields cache is loaded
if (empty(self::$tableFieldCache)) {
if ($useCache) {
// Try to load table cache from a cache file
$cacheData = FOFPlatform::getInstance()->getCache('tablefields', null);
// Unserialise the cached data, or set to empty if the cache
// data wasn't loaded.
if (!is_null($cacheData)) {
$decoded = json_decode($cacheData, true);
$tableCache = array();
if (count($decoded)) {
foreach ($decoded as $myTableName => $tableFields) {
$temp = array();
if (is_array($tableFields)) {
foreach ($tableFields as $field => $def) {
$temp[$field] = (object) $def;
}
$tableCache[$myTableName] = $temp;
} elseif (is_object($tableFields) || is_bool($tableFields)) {
$tableCache[$myTableName] = $tableFields;
}
}
}
self::$tableFieldCache = $tableCache;
} else {
self::$tableFieldCache = array();
}
}
}
if (!$tableName) {
$tableName = $this->_tbl;
}
// Try to load again column specifications if the table is not loaded OR if it's loaded and
// the previous call returned an error
if (!array_key_exists($tableName, self::$tableFieldCache) || isset(self::$tableFieldCache[$tableName]) && !self::$tableFieldCache[$tableName]) {
// Lookup the fields for this table only once.
$name = $tableName;
$prefix = $this->_db->getPrefix();
if (substr($name, 0, 3) == '#__') {
$checkName = $prefix . substr($name, 3);
} else {
$checkName = $name;
}
if (!in_array($checkName, self::$tableCache)) {
// The table doesn't exist. Return false.
self::$tableFieldCache[$tableName] = false;
} elseif (version_compare(JVERSION, '3.0', 'ge')) {
$fields = $this->_db->getTableColumns($name, false);
if (empty($fields)) {
$fields = false;
}
self::$tableFieldCache[$tableName] = $fields;
} else {
$fields = $this->_db->getTableFields($name, false);
if (!isset($fields[$name])) {
$fields = false;
}
self::$tableFieldCache[$tableName] = $fields[$name];
}
// PostgreSQL date type compatibility
if ($this->_db->name == 'postgresql' && self::$tableFieldCache[$tableName] != false) {
foreach (self::$tableFieldCache[$tableName] as $field) {
if (strtolower($field->type) == 'timestamp without time zone') {
if (stristr($field->Default, '\'::timestamp without time zone')) {
list($date, $junk) = explode('::', $field->Default, 2);
$field->Default = trim($date, "'");
}
}
//.........这里部分代码省略.........
示例8: getPrefix
/**
* @return string
*/
public function getPrefix()
{
return $this->_db->getPrefix();
}