本文整理汇总了PHP中rex_sql::getInstance方法的典型用法代码示例。如果您正苦于以下问题:PHP rex_sql::getInstance方法的具体用法?PHP rex_sql::getInstance怎么用?PHP rex_sql::getInstance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rex_sql
的用法示例。
在下文中一共展示了rex_sql::getInstance方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: delete
function delete()
{
$deleteSql = rex_sql::getInstance();
$deleteSql->debugsql =& $this->debug;
$deleteSql->setTable($this->tableName);
$deleteSql->setWhere($this->whereCondition);
foreach ($this->getFieldsets() as $fieldsetName) {
// POST-Werte ermitteln
$fieldValues = $this->fieldsetPostValues($fieldsetName);
foreach ($fieldValues as $fieldName => $fieldValue) {
// Callback, um die Values vor dem Löschen noch beeinflussen zu können
$fieldValue = $this->preDelete($fieldsetName, $fieldName, $fieldValue, $deleteSql);
// Element heraussuchen
$element =& $this->getElement($fieldsetName, $fieldName);
// Den POST-Wert als Value in das Feld speichern
// Da generell alles von REDAXO escaped wird, hier slashes entfernen
$element->setValue(stripslashes($fieldValue));
}
}
return $deleteSql->delete();
}
示例2: _rex_a62_metainfo_med_handleSave
/**
* Medien:
*
* Übernimmt die gePOSTeten werte in ein rex_sql-Objekt und speichert diese
*/
function _rex_a62_metainfo_med_handleSave($params, $sqlFields)
{
if ($_SERVER['REQUEST_METHOD'] != 'POST' || !isset($params['file_id'])) {
return $params;
}
global $REX;
$media = rex_sql::getInstance();
// $media->debugsql = true;
$media->setTable($REX['TABLE_PREFIX'] . 'file');
$media->setWhere('file_id=' . $params['file_id']);
_rex_a62_metainfo_handleSave($params, $media, $sqlFields);
$media->update();
return $params;
}
示例3: setQuery
function setQuery($qry)
{
$sql = rex_sql::getInstance($this->DBID);
return $sql->setQuery($qry);
}
示例4: save
function save()
{
global $I18N_META_INFOS;
$fieldName = $this->getFieldValue('name');
if ($fieldName == '') {
return $I18N_META_INFOS->msg('field_error_name');
}
if (preg_match('/[^a-zA-Z0-9\\_]/', $fieldName)) {
return $I18N_META_INFOS->msg('field_error_chars_name');
}
// Prüfen ob schon eine Spalte mit dem Namen existiert (nur beim add nötig)
if (!$this->isEditMode()) {
$sql = new rex_sql();
$sql->setQuery('SELECT * FROM ' . $this->tableName . ' WHERE name="' . $this->addPrefix($fieldName) . '" LIMIT 1');
if ($sql->getRows() == 1) {
return $I18N_META_INFOS->msg('field_error_unique_name');
}
}
// Den alten Wert aus der DB holen
// Dies muss hier geschehen, da in parent::save() die Werte für die DB mit den
// POST werten überschrieben werden!
$fieldOldName = '';
$fieldOldPrior = 9999999999999;
// dirty, damit die prio richtig läuft...
$fieldOldDefault = '';
if ($this->sql->getRows() == 1) {
$fieldOldName = $this->sql->getValue('name');
$fieldOldPrior = $this->sql->getValue('prior');
$fieldOldDefault = $this->sql->getValue('default');
}
if (parent::save()) {
global $REX, $I18N;
$this->organizePriorities($this->getFieldValue('prior'), $fieldOldPrior);
rex_generateAll();
$fieldName = $this->addPrefix($fieldName);
$fieldType = $this->getFieldValue('type');
$fieldDefault = $this->getFieldValue('default');
$sql = rex_sql::getInstance();
$result = $sql->getArray('SELECT `dbtype`, `dblength` FROM `' . $REX['TABLE_PREFIX'] . '62_type` WHERE id=' . $fieldType);
$fieldDbType = $result[0]['dbtype'];
$fieldDbLength = $result[0]['dblength'];
// TEXT Spalten dürfen in MySQL keine Defaultwerte haben
if ($fieldDbType == 'text') {
$fieldDefault = null;
}
if ($this->isEditMode()) {
// Spalte in der Tabelle verändern
$tmRes = $this->tableManager->editColumn($fieldOldName, $fieldName, $fieldDbType, $fieldDbLength, $fieldDefault);
} else {
// Spalte in der Tabelle anlegen
$tmRes = $this->tableManager->addColumn($fieldName, $fieldDbType, $fieldDbLength, $fieldDefault);
}
if ($tmRes) {
// DefaultWerte setzen
if ($fieldDefault != $fieldOldDefault) {
$qry = 'UPDATE `' . $this->tableManager->getTableName() . '` SET `' . $fieldName . '`="' . $fieldDefault . '" WHERE `' . $fieldName . '`="' . $fieldOldDefault . '"';
return $sql->setQuery($qry);
}
// Default werte haben schon zuvor gepasst, daher true zurückgeben
return true;
}
}
return false;
}
示例5: disconnect
/**
* Schließt die Verbindung zum DB Server
*/
function disconnect($DBID = 1)
{
global $REX;
// Alle Connections schließen
if ($DBID === null) {
foreach ($REX['DB'] as $DBID => $DBSettings) {
rex_sql::disconnect($DBID);
}
return;
}
if (!$REX['DB'][$DBID]['PERSISTENT']) {
$db = rex_sql::getInstance($DBID, false);
if (rex_sql::isValid($db) && is_resource($db->identifier)) {
mysql_close($db->identifier);
}
}
}
示例6: getRows
/**
* Gibt die Anzahl der Zeilen zurück, welche vom ursprüngliche SQL Statement betroffen werden
*
* @return int
*/
function getRows()
{
if (!$this->rows) {
$sql = rex_sql::getInstance();
$sql->debugsql = $this->debug;
$sql->setQuery($this->query);
$this->rows = $sql->getRows();
}
return $this->rows;
}
示例7: setToArchive
/**
* @author Jens Fuchs <fuchs at d-mind.de>
* @project Redaxo-News-Addon
* @date 16.11.2012
* @param int
* @return
* Setzt das archive_date eines Artikels neu und verschiebt ihn somit ins Archiv
*/
function setToArchive($id)
{
$sql = rex_sql::getInstance();
$sql->debugsql = false;
$sql->setTable(TBL_NEWS);
$sql->setWhere('id = ' . $id);
$sql->setValue('archive_date', date('Y-m-d'));
if ($sql->update()) {
return true;
}
return false;
}
示例8: save
/**
* Speichert das Formular
*
* Gibt true zur�ck wenn alles ok war, false bei einem allgemeinen Fehler oder
* einen String mit einer Fehlermeldung.
*/
function save()
{
global $REX;
if (isset($this->languageDependent['id']) and isset($this->languageDependent['clang']) and $this->mode == 'add') {
$sql = rex_sql::getInstance();
foreach ($REX['CLANG'] as $key => $val) {
$sql->debugsql = $this->debug;
$sql->setTable($this->tableName);
if (!isset($id) or !$id) {
$id = $sql->setNewId($this->languageDependent['id']);
} else {
$sql->setValue($this->languageDependent['id'], $id);
}
$sql->setValue($this->languageDependent['clang'], $key);
foreach ($this->getFieldsets() as $fieldsetName) {
// POST-Werte ermitteln
$fieldValues = $this->fieldsetPostValues($fieldsetName);
foreach ($fieldValues as $fieldName => $fieldValue) {
// Callback, um die Values vor dem Speichern noch beeinflussen zu k�nnen
$fieldValue = $this->preSave($fieldsetName, $fieldName, $fieldValue, $sql);
if (is_array($fieldValue)) {
$fieldValue = implode('|+|', $fieldValue);
}
// Element heraussuchen
$element = $this->getElement($fieldsetName, $fieldName);
// Den POST-Wert als Value in das Feld speichern
// Da generell alles von REDAXO escaped wird, hier slashes entfernen
$element->setValue(stripslashes($fieldValue));
// Den POST-Wert in die DB speichern (inkl. slahes)
$sql->setValue($fieldName, $fieldValue);
}
}
if ($sql->insert()) {
$msg = true;
} else {
$msg = false;
}
}
return $msg;
} else {
return parent::save();
}
}
示例9: a62_delete_field
function a62_delete_field($fieldIdOrName)
{
global $REX, $I18N;
// Löschen anhand der FieldId
if (is_int($fieldIdOrName)) {
$fieldQry = 'SELECT * FROM ' . $REX['TABLE_PREFIX'] . '62_params WHERE field_id=' . $fieldIdOrName . ' LIMIT 2';
$invalidField = $I18N->msg('minfo_field_error_invalid_fieldid');
} else {
if (is_string($fieldIdOrName)) {
$fieldQry = 'SELECT * FROM ' . $REX['TABLE_PREFIX'] . '62_params WHERE name="' . addslashes($fieldIdOrName) . '" LIMIT 2';
$invalidField = $I18N->msg('minfo_field_error_invalid_name');
} else {
trigger_error('MetaInfos: Unexpected type for $fieldIdOrName!', E_USER_ERROR);
}
}
// Feld existiert?
$sql = rex_sql::getInstance();
$fieldInfos = $sql->getArray($fieldQry);
if ($sql->getRows() != 1) {
return $invalidField;
}
$name = $fieldInfos[0]['name'];
$field_id = $fieldInfos[0]['field_id'];
$prefix = a62_meta_prefix($name);
$metaTable = a62_meta_table($prefix);
// Spalte existiert?
$sql = rex_sql::getInstance();
$sql->setQuery('SELECT * FROM ' . $metaTable . ' LIMIT 1');
if (!in_array($name, $sql->getFieldnames())) {
return $I18N->msg('minfo_field_error_invalid_name');
}
$sql = rex_sql::getInstance();
$sql->setTable($REX['TABLE_PREFIX'] . '62_params');
$sql->setWhere('field_id=' . $field_id);
if (!$sql->delete()) {
return $sql->getError();
}
$tableManager = new rex_a62_tableManager($metaTable);
return $tableManager->deleteColumn($name);
}
示例10: save
function save()
{
$fieldName = $this->getFieldValue('name');
// Den alten Wert aus der DB holen
// Dies muss hier geschehen, da in parent::save() die Werte für die DB mit den
// POST werten überschrieben werden!
$fieldOldName = '';
$fieldOldPrior = 9999999999999;
// dirty, damit die prio richtig läuft...
$fieldOldDefault = '';
if ($this->sql->getRows() == 1) {
$fieldOldName = $this->sql->getValue('name');
$fieldOldPrior = $this->sql->getValue('prior');
$fieldOldDefault = $this->sql->getValue('default');
}
if (parent::save()) {
global $REX, $I18N;
$this->organizePriorities($this->getFieldValue('prior'), $fieldOldPrior);
rex_generateAll();
$fieldName = $this->addPrefix($fieldName);
$fieldType = $this->getFieldValue('type');
$fieldDefault = $this->getFieldValue('default');
$sql = rex_sql::getInstance();
$result = $sql->getArray('SELECT `dbtype`, `dblength` FROM `' . $REX['TABLE_PREFIX'] . '62_type` WHERE id=' . $fieldType);
$fieldDbType = $result[0]['dbtype'];
$fieldDbLength = $result[0]['dblength'];
// TEXT Spalten dürfen in MySQL keine Defaultwerte haben
if ($fieldDbType == 'text') {
$fieldDefault = null;
}
if ($this->isEditMode()) {
// Spalte in der Tabelle verändern
$tmRes = $this->tableManager->editColumn($fieldOldName, $fieldName, $fieldDbType, $fieldDbLength, $fieldDefault);
} else {
// Spalte in der Tabelle anlegen
$tmRes = $this->tableManager->addColumn($fieldName, $fieldDbType, $fieldDbLength, $fieldDefault);
}
if ($tmRes) {
// DefaultWerte setzen
if ($fieldDefault != $fieldOldDefault) {
$upd = new rex_sql();
$upd->setTable($this->tableManager->getTableName());
$upd->setWhere('`' . $fieldName . '`="' . addSlashes($fieldOldDefault) . '"');
$upd->setValue($fieldName, addSlashes($fieldDefault));
return $upd->update();
}
// Default werte haben schon zuvor gepasst, daher true zurückgeben
return true;
}
}
return false;
}
示例11: rex_organize_priorities
/**
* Allgemeine funktion die eine Datenbankspalte fortlaufend durchnummeriert.
* Dies ist z.B. nützlich beim Umgang mit einer Prioritäts-Spalte
*/
function rex_organize_priorities($tableName, $priorColumnName, $whereCondition = '', $orderBy = '', $startBy = 1)
{
// Datenbankvariable initialisieren
$qry = 'SET @count=' . ($startBy - 1);
$sql = rex_sql::getInstance();
$sql->setQuery($qry);
// Spalte updaten
$qry = 'UPDATE ' . $tableName . ' SET ' . $priorColumnName . ' = ( SELECT @count := @count +1 )';
if ($whereCondition != '') {
$qry .= ' WHERE ' . $whereCondition;
}
if ($orderBy != '') {
$qry .= ' ORDER BY ' . $orderBy;
}
$sql = rex_sql::getInstance();
$sql->setQuery($qry);
}