本文整理汇总了PHP中rex_sql::setquery方法的典型用法代码示例。如果您正苦于以下问题:PHP rex_sql::setquery方法的具体用法?PHP rex_sql::setquery怎么用?PHP rex_sql::setquery使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rex_sql
的用法示例。
在下文中一共展示了rex_sql::setquery方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: elseif
function rex_copyRevisionContent($article_id, $clang, $from_revision_id, $to_revision_id, $from_re_sliceid = 0, $to_revision_delete = FALSE)
{
global $REX;
if ($to_revision_delete) {
$dc = new rex_sql();
// $dc->debugsql = 1;
$dc->setQuery('delete from ' . $REX['TABLE_PREFIX'] . 'article_slice where article_id=' . $article_id . ' and clang=' . $clang . ' and revision=' . $to_revision_id);
}
if ($from_revision_id == $to_revision_id) {
return false;
}
$gc = new rex_sql();
// $gc->debugsql = 1;
$gc->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article_slice where re_article_slice_id='{$from_re_sliceid}' and article_id='{$article_id}' and clang='{$clang}' and revision='{$from_revision_id}'");
if ($gc->getRows() == 1) {
// letzt slice_id des ziels holen ..
$glid = new rex_sql();
// $glid->debugsql = 1;
$glid->setQuery("\n\t\t\t\t\tselect \n\t\t\t\t\t\tr1.id, r1.re_article_slice_id\n\t from \n\t\t\t\t\t\t" . $REX['TABLE_PREFIX'] . "article_slice as r1\n\t\t\t\t\tleft join " . $REX['TABLE_PREFIX'] . "article_slice as r2 on r1.id = r2.re_article_slice_id\n\t where \n\t\t\t\t\t\tr1.article_id = {$article_id} and r1.clang = {$clang} and \n\t\t\t\t\t\tr2.id is NULL and \n\t\t\t\t\t\tr1.revision='{$to_revision_id}';");
if ($glid->getRows() == 1) {
$to_last_slice_id = $glid->getValue("r1.id");
} else {
$to_last_slice_id = 0;
}
$ins = new rex_sql();
// $ins->debugsql = 1;
$ins->setTable($REX['TABLE_PREFIX'] . "article_slice");
$cols = new rex_sql();
$cols->setquery("SHOW COLUMNS FROM " . $REX['TABLE_PREFIX'] . "article_slice");
for ($j = 0; $j < $cols->rows; $j++, $cols->next()) {
$colname = $cols->getValue("Field");
if ($colname == "re_article_slice_id") {
$value = $to_last_slice_id;
} elseif ($colname == "revision") {
$value = $to_revision_id;
} elseif ($colname == "createdate") {
$value = time();
} elseif ($colname == "updatedate") {
$value = time();
} elseif ($colname == "createuser") {
$value = $REX["USER"]->getValue("login");
} elseif ($colname == "updateuser") {
$value = $REX["USER"]->getValue("login");
} else {
$value = $gc->getValue($colname);
}
if ($colname != "id") {
$ins->setValue($colname, $ins->escape($value));
}
}
$ins->insert();
// id holen und als re setzen und weitermachen..
rex_copyRevisionContent($article_id, $clang, $from_revision_id, $to_revision_id, $gc->getValue("id"));
return true;
}
rex_generateArticle($article_id);
return true;
}
示例2: rex_copyContent
/**
* Kopiert die Inhalte eines Artikels in einen anderen Artikel
*
* @param $from_id ArtikelId des Artikels, aus dem kopiert werden (Quell ArtikelId)
* @param $to_id ArtikelId des Artikel, in den kopiert werden sollen (Ziel ArtikelId)
* @param [$from_clang] ClangId des Artikels, aus dem kopiert werden soll (Quell ClangId)
* @param [$to_clang] ClangId des Artikels, in den kopiert werden soll (Ziel ClangId)
* @param [$from_re_sliceid] Id des Slices, bei dem begonnen werden soll
*/
function rex_copyContent($from_id, $to_id, $from_clang = 0, $to_clang = 0, $from_re_sliceid = 0)
{
global $REX, $REX_USER;
if ($from_id == $to_id && $from_clang == $to_clang) {
return false;
}
$gc = new rex_sql();
$gc->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article_slice where re_article_slice_id='{$from_re_sliceid}' and article_id='{$from_id}' and clang='{$from_clang}'");
if ($gc->getRows() == 1) {
// letzt slice_id des ziels holen ..
$glid = new rex_sql();
$glid->setQuery("select r1.id, r1.re_article_slice_id\n from " . $REX['TABLE_PREFIX'] . "article_slice as r1\n left join " . $REX['TABLE_PREFIX'] . "article_slice as r2 on r1.id=r2.re_article_slice_id\n where r1.article_id={$to_id} and r1.clang={$to_clang} and r2.id is NULL;");
if ($glid->getRows() == 1) {
$to_last_slice_id = $glid->getValue("r1.id");
} else {
$to_last_slice_id = 0;
}
$ins = new rex_sql();
// $ins->debugsql = 1;
$ins->setTable($REX['TABLE_PREFIX'] . "article_slice");
$cols = new rex_sql();
// $cols->debugsql = 1;
$cols->setquery("SHOW COLUMNS FROM " . $REX['TABLE_PREFIX'] . "article_slice");
for ($j = 0; $j < $cols->rows; $j++, $cols->next()) {
$colname = $cols->getvalue("Field");
if ($colname == "clang") {
$value = $to_clang;
} elseif ($colname == "re_article_slice_id") {
$value = $to_last_slice_id;
} elseif ($colname == "article_id") {
$value = $to_id;
} elseif ($colname == "createdate") {
$value = time();
} elseif ($colname == "updatedate") {
$value = time();
} elseif ($colname == "createuser") {
$value = $REX_USER->getValue("login");
} elseif ($colname == "updateuser") {
$value = $REX_USER->getValue("login");
} else {
$value = addslashes($gc->getValue("{$colname}"));
}
if ($colname != "id") {
$ins->setValue($colname, $value);
}
}
$ins->insert();
// id holen und als re setzen und weitermachen..
rex_copyContent($from_id, $to_id, $from_clang, $to_clang, $gc->getValue("id"));
return true;
}
rex_generateArticle($to_id);
return true;
}
示例3: rex_a1_export_db
/**
* Erstellt einen SQL Dump, der die aktuellen Datebankstruktur darstellt
* @return string SQL Dump der Datenbank
*/
function rex_a1_export_db()
{
global $REX;
$tabs = new rex_sql();
$tabs->setquery('SHOW TABLES');
$dump = '';
// ----- EXTENSION POINT
rex_register_extension_point('A1_BEFORE_DB_EXPORT');
for ($i = 0; $i < $tabs->rows; $i++, $tabs->next()) {
$tab = $tabs->getValue('Tables_in_' . $REX['DB']['1']['NAME']);
if (strstr($tab, $REX['TABLE_PREFIX']) == $tab && $tab != $REX['TABLE_PREFIX'] . 'user' && substr($tab, 0, strlen($REX['TABLE_PREFIX'] . $REX['TEMP_PREFIX'])) != $REX['TABLE_PREFIX'] . $REX['TEMP_PREFIX']) {
$cols = new rex_sql();
$cols->setquery("SHOW COLUMNS FROM `" . $tab . "`");
$query = "DROP TABLE IF EXISTS `" . $tab . "`;\nCREATE TABLE `" . $tab . "` (";
// Spalten auswerten
for ($j = 0; $j < $cols->rows; $j++) {
$colname = $cols->getValue('Field');
$coltype = $cols->getValue('Type');
// Null Werte
if ($cols->getValue('Null') == 'YES') {
$colnull = 'NULL';
} else {
$colnull = 'NOT NULL';
}
// Default Werte
if ($cols->getValue('Default') != '') {
$coldef = 'DEFAULT \'' . str_replace("'", "\\'", $cols->getValue('Default')) . '\'';
} else {
$coldef = '';
}
// Spezial Werte
$colextra = $cols->getValue('Extra');
$query .= " `{$colname}` {$coltype} {$colnull} {$coldef} {$colextra}";
if ($j + 1 != $cols->rows) {
$query .= ",";
}
$cols->next();
}
// Indizes Auswerten
$indizes = new rex_sql();
$indizes->setQuery('SHOW INDEX FROM `' . $tab . '`');
$primary = array();
$uniques = array();
$fulltexts = array();
for ($x = 0; $x < $indizes->getRows(); $x++) {
if ($indizes->getValue('Index_type') == 'BTREE') {
if ($indizes->getValue('Key_name') != 'PRIMARY') {
$uniques[$indizes->getValue('Key_name')][] = $indizes->getValue('Column_name');
} else {
$primary[$indizes->getValue('Key_name')][] = $indizes->getValue('Column_name');
}
} else {
if ($indizes->getValue('Index_type') == 'FULLTEXT') {
$fulltexts[$indizes->getValue('Key_name')][] = $indizes->getValue('Column_name');
}
}
$indizes->next();
}
// Primary key Auswerten
foreach ($primary as $name => $columnNames) {
// , UNIQUE KEY `name` (`spalten`,..)
$query .= ", PRIMARY KEY (`" . implode('`,`', $columnNames) . "`)";
}
// Unique Index Auswerten
foreach ($uniques as $name => $columnNames) {
// , UNIQUE KEY `name` (`spalten`,..)
$query .= ", UNIQUE KEY `" . $name . "`(`" . implode('`,`', $columnNames) . "`)";
}
// Unique Index Auswerten
foreach ($fulltexts as $name => $columnNames) {
// , FULLTEXT KEY `name` (`spalten`,..)
$query .= ", FULLTEXT KEY `" . $name . "`(`" . implode('`,`', $columnNames) . "`)";
}
$query .= ") TYPE=MyISAM;";
$dump .= $query . "\n";
// Inhalte der Tabelle Auswerten
$cont = new rex_sql();
$cont->setquery("SELECT * FROM `" . $tab . "`");
for ($j = 0; $j < $cont->rows; $j++, $cont->next()) {
$query = "INSERT INTO `" . $tab . "` VALUES (";
$cols->counter = 0;
for ($k = 0; $k < $cols->rows; $k++, $cols->next()) {
$con = $cont->getValue($cols->getValue("Field"));
if (is_numeric($con)) {
$query .= "'" . $con . "'";
} else {
$query .= "'" . addslashes($con) . "'";
}
if ($k + 1 != $cols->rows) {
$query .= ",";
}
}
$query .= ");";
$dump .= str_replace(array("\r\n", "\n"), '\\r\\n', $query) . "\n";
}
}
//.........这里部分代码省略.........