本文整理汇总了PHP中xf_db_error函数的典型用法代码示例。如果您正苦于以下问题:PHP xf_db_error函数的具体用法?PHP xf_db_error怎么用?PHP xf_db_error使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了xf_db_error函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: Dataface_PreferencesTool__createPreferencesTable
/**
* This function acts as a member method of the PreferencesTool class. It has
* been factored out for efficiency because it only needs to be run once.
* @see Dataface_PreferncesTool::_createPreferencesTable()
*/
function Dataface_PreferencesTool__createPreferencesTable()
{
$res = xf_db_query("create table if not exists `dataface__preferences` (\n\t\t\t`pref_id` int(11) unsigned not null auto_increment,\n\t\t\t`username` varchar(64) not null,\n\t\t\t`table` varchar(128) not null,\n\t\t\t`record_id` varchar(255) not null,\n\t\t\t`key` varchar(128) not null,\n\t\t\t`value` varchar(255) not null,\n\t\t\tprimary key (pref_id),\n\t\t\tindex `username` (`username`),\n\t\t\tindex `table` (`table`),\n\t\t\tindex `record_id` (`record_id`))", df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()), E_USER_ERROR);
}
}
开发者ID:minger11,项目名称:Pipeline,代码行数:12,代码来源:_createPreferencesTable.php
示例2: test_updateTranslationsTable
function test_updateTranslationsTable()
{
$app =& Dataface_Application::getInstance();
$tt = new Dataface_TranslationTool();
$tt->updateTranslationsTable();
$sql = "show columns from `dataface__translations`";
$res = xf_db_query($sql, $app->db());
if (!$res) {
trigger_error(xf_db_error($app->db()), E_USER_ERROR);
}
$cols = array();
while ($row = xf_db_fetch_assoc($res)) {
$cols[$row['Field']] = $row;
}
$this->assertEquals(array_keys($tt->schema), array_keys($cols));
$tt->schema['test_col'] = array('Field' => 'test_col', 'Type' => "int(11)", 'Extra' => '', 'Null' => '');
$tt->updateTranslationsTable();
$sql = "show columns from `dataface__translations`";
$res = xf_db_query($sql, $app->db());
if (!$res) {
trigger_error(xf_db_error($app->db()), E_USER_ERROR);
}
$cols = array();
while ($row = xf_db_fetch_assoc($res)) {
$cols[$row['Field']] = $row;
}
$this->assertEquals(array_keys($tt->schema), array_keys($cols));
}
开发者ID:Zunair,项目名称:xataface,代码行数:28,代码来源:TranslationToolTest.php
示例3: createRecordsTable
public static function createRecordsTable()
{
$sql = sprintf("create table `%s` (\n\t\t\t\tid int(11) not null auto_increment,\n\t\t\t\tschema_id int(11) not null,\n\t\t\t\t`base_record_id_hash` varchar(32) not null,\n\t\t\t\t`base_record_id` text not null,\n\t\t\t\t`version_hash` varchar(32) not null,\n\t\t\t\t`lang` varchar(2) not null,\n\t\t\t\t`record_data` text not null,\n\t\t\t\tprimary key (`id`),\n\t\t\t\tkey (`schema_id`, `base_record_id_hash`, `version_hash`)\n\t\t\t)", self::$RECORDS_TABLE);
$res = xf_db_query($sql, df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()));
}
true;
}
开发者ID:minger11,项目名称:Pipeline,代码行数:9,代码来源:MySQLDataSource.php
示例4: handle
function handle(&$params)
{
$app =& Dataface_Application::getInstance();
if (df_get_database_version() == df_get_file_system_version()) {
$app->redirect(DATAFACE_SITE_HREF . '?--msg=' . urlencode('The application database is up to date at version ' . df_get_database_version()));
}
if (df_get_database_version() > df_get_file_system_version()) {
$app->redirect(DATAFACE_SITE_HREF . '?--msg=' . urlencode('The database version is greater than the file system version. Please upgrade your application to match the version in the database (version ' . df_get_database_version()));
}
$res = xf_db_query("select count(*) from dataface__version", df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()));
}
$row = xf_db_fetch_row($res);
if ($row[0] == 0) {
$res2 = xf_db_query("insert into dataface__version (`version`) values (0)", df_db());
if (!$res2) {
throw new Exception(xf_db_error(df_db()));
}
}
if (file_exists('conf/Installer.php')) {
import('conf/Installer.php');
$installer = new conf_Installer();
$methods = get_class_methods('conf_Installer');
$methods = preg_grep('/^update_([0-9]+)$/', $methods);
$updates = array();
foreach ($methods as $method) {
preg_match('/^update_([0-9]+)$/', $method, $matches);
$version = intval($matches[1]);
if ($version > df_get_database_version() and $version <= df_get_file_system_version()) {
$updates[] = $version;
}
}
sort($updates);
foreach ($updates as $update) {
$method = 'update_' . $update;
$res = $installer->{$method}();
if (PEAR::isError($res)) {
return $res;
}
$res = xf_db_query("update dataface__version set `version`='" . addslashes($update) . "'", df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()), E_USER_ERROR);
}
}
}
$res = xf_db_query("update dataface__version set `version`='" . addslashes(df_get_file_system_version()) . "'", df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()), E_USER_ERROR);
}
if (function_exists('apc_clear_cache')) {
apc_clear_cache('user');
}
df_clear_views();
df_clear_cache();
$app->redirect(DATAFACE_SITE_HREF . '?--msg=' . urlencode('The database has been successfully updated to version ' . df_get_file_system_version()));
}
开发者ID:minger11,项目名称:Pipeline,代码行数:57,代码来源:install.php
示例5: setUp
function setUp()
{
$app =& Dataface_Application::getInstance();
$path = DATAFACE_SITE_PATH . '/tables/' . $this->mytable;
if (file_exists($path)) {
@rmdir($path);
}
xf_db_query('drop table if exists `' . $this->mytable . '`', $app->db()) or die(xf_db_error() . ' on line ' . __LINE__ . ' of file ' . __FILE__);
parent::setUp();
}
开发者ID:Zunair,项目名称:xataface,代码行数:10,代码来源:Table_builderTest.php
示例6: Dataface_ConfigTool_createConfigTable
/**
* A method to create the configuration table in the database. The configuration
* table is where configuration (e.g. fields.ini etc..) may be stored. This is
* a new feature in 0.6.14.
*
* @author Steve Hannah <[email protected]>
* @created Feb. 26, 2007
*/
function Dataface_ConfigTool_createConfigTable()
{
$self =& Dataface_ConfigTool::getInstance();
if (!Dataface_Table::tableExists($self->configTableName, false)) {
$sql = "CREATE TABLE `" . $self->configTableName . "` (\n\t\t\t\t\tconfig_id int(11) NOT NULL auto_increment primary key,\n\t\t\t\t\t`file` varchar(255) NOT NULL,\n\t\t\t\t\t`section` varchar(128),\n\t\t\t\t\t`key` varchar(128) NOT NULL,\n\t\t\t\t\t`value` text NOT NULL,\n\t\t\t\t\t`lang` varchar(2),\n\t\t\t\t\t`username` varchar(32),\n\t\t\t\t\t`priority` int(5) default 5\n\t\t\t\t\t)";
$res = xf_db_query($sql, df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()), E_USER_ERROR);
}
}
}
开发者ID:minger11,项目名称:Pipeline,代码行数:19,代码来源:createConfigTable.function.php
示例7: testSync1
function testSync1()
{
$app =& Dataface_Application::getInstance();
$s = new DB_Sync($app->db(), $app->db(), 'a', 'b');
$s->syncTables();
$res = xf_db_query("show create table b", $app->db());
if (!$res) {
trigger_error(xf_db_error($app->db()), E_USER_ERROR);
}
$row = xf_db_fetch_assoc($res);
@xf_db_free_result($res);
$this->assertEquals("CREATE TABLE `b` (\n `id` int(11) NOT NULL auto_increment,\n `a` varchar(32) default 'b',\n `b` datetime default '0000-00-00 00:00:00',\n PRIMARY KEY (`id`)\n) ENGINE=MyISAM DEFAULT CHARSET=latin1", $row['Create Table']);
}
开发者ID:Zunair,项目名称:xataface,代码行数:13,代码来源:DB_Sync_Test.php
示例8: setUp
function setUp()
{
parent::setUp();
xf_db_query("CREATE TABLE `Pages` (\n\t\t\t`PageID` INT(11) auto_increment NOT NULL,\n\t\t\t`ParentID` INT(11),\n\t\t\t`ShortName` VARCHAR(32) NOT NULL,\n\t\t\t`Description` TEXT,\n\t\t\tPRIMARY KEY (`PageID`),\n\t\t\tUNIQUE (`ParentID`,`ShortName`))") or trigger_error(xf_db_error() . __LINE__);
xf_db_query("INSERT INTO `Pages` (`PageID`,`ShortName`,`Description`)\n\t\t\tVALUES (1,'index_page','Main page')") or trigger_error(xf_db_error() . __LINE__);
xf_db_query("INSERT INTO `Pages` (`ParentID`,`ShortName`,`Description`)\n\t\t\tVALUES \n\t\t\t(1,'about','About us'),\n\t\t\t(1,'jobs','Now hiring'),\n\t\t\t(1,'products','About our products'),\n\t\t\t(1,'services','About our services'),\n\t\t\t(1,'contact','Contact us')") or trigger_error(xf_db_error() . __LINE__);
xf_db_query("INSERT INTO `Pages` (`ParentID`,`ShortName`,`Description`)\n\t\t\tVALUES\n\t\t\t(2,'history','Our history'),\n\t\t\t(2,'future', 'The direction of the company'),\n\t\t\t(3,'application', 'Job application'),\n\t\t\t(3,'current_listing', 'Current job listings'),\n\t\t\t(4,'awards','Product awards'),\n\t\t\t(4,'downloads','Product downlaods'),\n\t\t\t(5,'consultation','Free consultation')") or trigger_error(xf_db_error() . __LINE__);
$table =& Dataface_Table::loadTable('Pages');
$r =& $table->relationships();
if (!isset($r['children'])) {
$table->addRelationship('children', array('__sql__' => 'select * from Pages where ParentID=\'$PageID\'', 'meta:class' => 'children'));
}
$this->indexpage =& df_get_record('Pages', array('PageID' => 1));
$this->t = new Dataface_TreeTable($this->indexpage);
}
开发者ID:Zunair,项目名称:xataface,代码行数:15,代码来源:TreeTableTest.php
示例9: Dataface_ConfigTool_setConfigParam
/**
* Sets a configuration parameter in the configuration table.
* This should not be called directly. It should be called through the
* Dataface_ConfigTool class as its setConfigParam method.
*
* @param string $file The name of the ini file in which the config value is being set.
* @param string $section The name of the section (could be null).
* @param string $key The name of the parameter's key (not null)
* @param string $value The value to set (not null)
* @param string $username The username for which the parameter is being set (null for all users)
* @param string $lang The 2-digit language code for which the parameter is being set (null for all languages).
* @param integer $priority The priority of this config variable (priority dictates which
* parameters take priority. Default vallue of 5.
* @returns true if success or PEAR_Error if failure.
*
* This will create the configuration table if it doesn't already exist.
*
* @author Steve Hannah <[email protected]>
* @created Feb. 26, 2007
*/
function Dataface_ConfigTool_setConfigParam($file, $section, $key, $value, $username = null, $lang = null, $priority = 5)
{
$self =& Dataface_ConfigTool::getInstance();
// See if this parameter has already been set:
$where = array();
$where[] = "`key`='" . addslashes($key) . "'";
$where[] = "`file`='" . addslashes($file) . "'";
$where[] = "`section`" . (isset($section) ? "='" . addslashes($section) . "'" : ' IS NULL');
$where[] = "`username`" . (isset($username) ? "='" . addslashes($username) . "'" : ' IS NULL');
$where[] = "`lang`" . (isset($lang) ? "='" . addslashes($lang) . "'" : ' IS NULL');
$where = implode(' and ', $where);
$sql = "select `config_id` from `" . $self->configTableName . "` where {$where} limit 1";
$res = xf_db_query($sql, df_db());
if (!$res) {
$self->createConfigTable();
$res = xf_db_query($sql, df_db());
}
if (!$res) {
return PEAR::raiseError("Failed to get config parameter: " . xf_db_error(df_db()));
}
$vals = array("section" => isset($section) ? "'" . addslashes($section) . "'" : 'NULL', "key" => "'" . addslashes($key) . "'", "value" => "'" . addslashes($value) . "'", "username" => "'" . addslashes($username) . "'", "lang" => "'" . addslashes($lang) . "'", "priority" => $priority);
if (xf_db_num_rows($res) > 0) {
$row = xf_db_fetch_assoc($res);
// We need to perform an update
$updates = array();
foreach ($vals as $vkey => $vval) {
$updates[] = '`' . $vkey . '`=' . $vval;
}
$sets = implode(' and ', $updates);
$sql = "update `" . $self->configTableName . "` set " . $sets . " where `config_id`='" . $row['config_id'] . "' limit 1";
} else {
$values = array();
$cols = array();
foreach ($vals as $vkey => $vval) {
$cols[] = "`{$vkey}`";
$values[] = $vval;
}
$cols = implode(',', $cols);
$values = implode(',', $values);
$sql = "insert into `" . $self->configTableName . "` ({$cols}) VALUES ({$values})";
}
@xf_db_free_result($res);
$res = xf_db_query($sql, df_db());
if (!$res) {
return PEAR::raiseError("Could not write config value: " . xf_db_error(df_db()));
}
return true;
}
开发者ID:minger11,项目名称:Pipeline,代码行数:68,代码来源:setConfigParam.function.php
示例10: handle
function handle(&$params)
{
$res = xf_db_query("show tables like 'dataface__view_%'", df_db());
$views = array();
while ($row = xf_db_fetch_row($res)) {
$views[] = $row[0];
}
if ($views) {
$sql = "drop view `" . implode('`,`', $views) . "`";
echo $sql;
echo "<br/>";
$res = xf_db_query("drop view `" . implode('`,`', $views) . "`", df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()));
}
}
echo "done";
}
开发者ID:minger11,项目名称:Pipeline,代码行数:18,代码来源:clear_views.php
示例11: copy
function copy($record, $vals = array(), $force = true)
{
foreach ($vals as $k => $v) {
if (strpos($v, '=') === 0) {
$vals[$k] = $this->evaluate($v, $k, $record);
}
}
$del = $record->_table->getDelegate();
if (isset($del) and method_exists($del, 'beforeCopy')) {
$res = $del->beforeCopy($record, $vals);
if (PEAR::isError($res)) {
return $res;
}
}
$this->warnings = array();
// Step 1: Load the record - it has been passed
// Step 2: build sql query to copy the record
$query = $this->buildCopyQuery($record, $vals, $force);
if (PEAR::isError($query)) {
return $query;
}
$res = df_query($query);
if (!$res) {
return PEAR::raiseError("Failed to copy record '" . $record->getTitle() . "' due to an SQL error:" . xf_db_error());
}
if (PEAR::isError($res)) {
return $res;
}
$ret = null;
if ($auto_field_id = $record->_table->getAutoIncrementField()) {
$insert_id = df_insert_id();
$copied =& df_get_record($record->_table->tablename, array($auto_field_id => $insert_id));
$ret = $copied;
} else {
$ret = new Dataface_Record($record->_table->tablename, array_merge($record->vals(), $vals));
}
if (isset($del) and method_exists($del, 'afterCopy')) {
$res = $del->afterCopy($record, $ret);
if (PEAR::isError($res)) {
return $res;
}
}
return $ret;
}
开发者ID:minger11,项目名称:Pipeline,代码行数:44,代码来源:CopyTool.php
示例12: afterCopy
function afterCopy(Dataface_Record $orig, Dataface_Record $copy)
{
$rand = md5(rand(0, 1000000));
$copytable = 'copy_' . $rand;
$res = xf_db_query("create temporary table `{$copytable}` select * from formula_ingredients where formula_id='" . addslashes($orig->val('formula_id')) . "'", df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()));
}
$res = xf_db_query("update `{$copytable}` set formula_id='" . addslashes($copy->val('formula_id')) . "'", df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()));
}
$res = xf_db_query("insert into formula_ingredients select * from `{$copytable}`", df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()));
}
$res = xf_db_query("drop table `{$copytable}`", df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()));
}
}
开发者ID:Zunair,项目名称:xataface,代码行数:21,代码来源:formulas.php
示例13: handle
function handle(&$params)
{
$app =& Dataface_Application::getInstance();
$context = array();
if (!is_array(@$app->_conf['_output_cache']) or !@$app->_conf['_output_cache']['enabled']) {
$context['enabled'] = false;
//return PEAR::raiseError('The output cache is currently disabled. You can enable it by adding an [_output_cache] section to your conf.ini file with a value \'enabled=1\'');
} else {
$context['enabled'] = true;
}
if (@$_POST['--clear-cache']) {
// We should clear the cache
@xf_db_query("delete from `__output_cache`", df_db());
$app->redirect($app->url('') . '&--msg=' . urlencode('The output cache has been successfully cleared.'));
}
$res = xf_db_query("select count(*) from `__output_cache`", df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()), E_USER_ERROR);
}
list($numrows) = xf_db_fetch_row($res);
$context['numrows'] = $numrows;
df_display($context, 'manage_output_cache.html');
}
开发者ID:minger11,项目名称:Pipeline,代码行数:23,代码来源:manage_output_cache.php
示例14: handle
function handle($params)
{
$app =& Dataface_Application::getInstance();
if (!isset($_GET['key'])) {
trigger_error("No key specified", E_USER_ERROR);
}
$sql = "select `value` from `" . TRANSLATION_PAGE_TABLE . "` where `key` = '" . addslashes($_GET['key']) . "'";
$res = xf_db_query($sql, $app->db());
if (!$res) {
trigger_error(xf_db_error($app->db()), E_USER_ERROR);
}
if (xf_db_num_rows($res) == 0) {
trigger_error("Sorry the specified key was invalid.", E_USER_ERROR);
}
list($content) = xf_db_fetch_row($res);
@xf_db_free_result($res);
if (function_exists('tidy_parse_string')) {
$config = array('show-body-only' => true, 'output-encoding' => 'utf8');
$html = tidy_repair_string($content, $config, "utf8");
$content = trim($html);
}
df_display(array('content' => $content), 'TranslationPageTemplate.html');
return true;
}
开发者ID:minger11,项目名称:Pipeline,代码行数:24,代码来源:get_page_to_translate.php
示例15: handle
function handle(&$params)
{
import('Dataface/TranslationForm.php');
$app =& Dataface_Application::getInstance();
$query =& $app->getQuery();
$resultSet =& $app->getResultSet();
$source = isset($_REQUEST['-sourceLanguage']) ? $_REQUEST['-sourceLanguage'] : $app->_conf['default_language'];
$dest = isset($_REQUEST['-destinationLanguage']) ? $_REQUEST['-destinationLanguage'] : null;
if ($resultSet->found() > 0) {
$form = new Dataface_TranslationForm($query['-table'], $source, $dest);
/*
* There is either a result to edit, or we are creating a new record.
*
*/
$res = $form->_build();
if (PEAR::isError($res)) {
throw new Exception($res->toString() . Dataface_Error::printStackTrace(), E_USER_ERROR);
}
/*
*
* We need to add the current GET parameter flags (the GET vars starting with '-') so
* that the controller knows to pass control to this method again upon form submission.
*
*/
foreach ($query as $key => $value) {
if (strpos($key, '-') === 0) {
$form->addElement('hidden', $key);
$form->setDefaults(array($key => $value));
}
}
/*
* Store the current query string (the portion after the '?') in the form, so we
* can retrieve it after and redirect back to our original location.
*/
$form->addElement('hidden', '-query');
$form->setDefaults(array('-action' => $query['-action'], '-query' => $_SERVER['QUERY_STRING']));
/*
*
* We have to deal with 3 cases.
* 1) The form has not been submitted.
* 2) The form was submitted but didn't validate (ie: it had some bad input)
* 3) The form was submitted and was validated.
*
* We deal with Case 3 first...
*
*/
if ($form->validate()) {
/*
*
* The form was submitted and it validated ok. We now process it (ie: save its contents).
*
*/
$app->clearMessages();
$result = $form->process(array(&$form, 'save'));
$success = true;
$response =& Dataface_Application::getResponse();
if (!$result) {
error_log("Error occurred in save: " . xf_db_error($app->db()) . Dataface_Error::printStackTrace());
throw new Exception("Error occurred in save. See error log for details.");
} else {
if (PEAR::isError($result) && !Dataface_Error::isNotice($result)) {
//echo "Error..";
if (Dataface_Error::isDuplicateEntry($result)) {
return $result;
} else {
//echo "not dup entry"; exit;
throw new Exception($result->toString(), E_USER_ERROR);
}
} else {
if (Dataface_Error::isNotice($result)) {
$app->addError($result);
//$response['--msg'] = @$response['--msg'] ."\n".$result->getMessage();
$success = false;
}
}
}
if ($success) {
/*
*
* The original query string will have the -new flag set. We need to remove this
* flag so that we don't redirect the user to create another new record.
*
*/
$vals = $form->exportValues();
$vals['-query'] = preg_replace('/[&\\?]-new=[^&]+/i', '', $vals['-query']);
$msg = implode("\n", $app->getMessages());
//$msg =@$response['--msg'];
$msg = urlencode(Dataface_LanguageTool::translate('Record successfully translated', "Record successfully translated.<br>") . $msg);
$link = $_SERVER['HOST_URI'] . DATAFACE_SITE_HREF . '?' . $vals['-query'] . '&--msg=' . $msg;
/*
*
* Redirect the user to the appropriate record.
*
*/
$app->redirect($link);
}
}
ob_start();
$form->display();
$out = ob_get_contents();
//.........这里部分代码省略.........
开发者ID:minger11,项目名称:Pipeline,代码行数:101,代码来源:translate.php
示例16: Dataface_Record
function &loadCurrent($columns = null, $loadText = true, $loadBlobs = false, $loadPasswords = false)
{
$app =& Dataface_Application::getInstance();
$false = false;
// boolean placeholders for values needing to be returned by reference
$true = true;
if ($this->_currentRecord === null) {
//require_once 'Dataface/IO.php';
//$io = new Dataface_IO($this->_table->tablename);
//$query = array_merge( $this->_query, array('-skip'=>$this->_data['cursor'], '-limit'=>1) );
$this->_currentRecord = new Dataface_Record($this->_table->tablename, array());
//$io->read($query, $this->_currentRecord);
}
//return $this->_currentRecord;
$unloaded = array();
$fields =& $this->_table->fields(false, true);
if ($columns === null) {
$names = array_keys($fields);
} else {
$names = $columns;
}
foreach ($names as $name) {
if (!$this->_currentRecord->isLoaded($name)) {
if (!$loadText and $this->_table->isText($name)) {
continue;
}
if (!$loadBlobs and $this->_table->isBlob($name)) {
continue;
}
if (!$loadPasswords and $this->_table->isPassword($name)) {
continue;
}
$unloaded[] = $name;
}
}
if (sizeof($unloaded) > 0) {
$query = array_merge($this->_query, array('-skip' => $this->_data['cursor'], '-limit' => 1));
$builder = new Dataface_QueryBuilder($this->_tablename, $query);
$builder->selectMetaData = true;
$builder->_omitBlobs = false;
$sql = $builder->select($unloaded);
//echo $sql;
if (PEAR::isError($sql)) {
throw new Exception($sql->toString(), E_USER_ERROR);
}
//echo $sql;
$res = $this->dbObj->query($sql, $this->_db, null, true);
if (!$res and !is_array($res)) {
$app->refreshSchemas($this->_table->tablename);
$res = $this->dbObj->query($sql, $this->_db, null, true);
if (!$res and !is_array($res)) {
error_log(df_translate('scripts.Dataface.QueryTool.loadCurrent.ERROR_COULD_NOT_LOAD_CURRENT_RECORD', "Error: Could not load current record: ") . xf_db_error($this->_db) . "\n{$sql}");
throw new Exception("Failed to load current record due to an SQL error");
}
}
if (count($res) <= 0) {
return $false;
}
$row = $res[0];
//xf_db_fetch_assoc($res);
//@xf_db_free_result($row);
if (!isset($this->_currentRecord)) {
$this->_currentRecord = new Dataface_Record($this->_table->tablename, $row);
} else {
$this->_currentRecord->setValues($row);
}
//$this->_table->setValues($row);
//$this->_table->setSnapshot();
//$this->_table->deserialize();
}
return $this->_currentRecord;
}
开发者ID:minger11,项目名称:Pipeline,代码行数:72,代码来源:QueryTool.php
示例17: delete_request_with_uuid
function delete_request_with_uuid($uuid)
{
$table = self::$TABLE_RESET_PASSWORD;
$res = xf_db_query("delete from `{$table}` where request_uuid='" . addslashes($uuid) . "' limit 1", df_db());
if (!$res) {
throw new Exception(xf_db_error(df_db()));
}
}
开发者ID:Zunair,项目名称:xataface,代码行数:8,代码来源:forgot_password.php
示例18: test_translateDeleteQuery
function test_translateDeleteQuery()
{
$app =& Dataface_Application::getInstance();
// Try to insert only values into both the base table and the
// translated table.
$sql = 'Delete FROM PeopleIntl where PersonID=5';
$translator = new Dataface_QueryTranslator('en');
$tsql = $translator->translateQuery($sql);
//print_r($tsql);exit;
$affected_rows = array();
foreach ($tsql as $q) {
$res = xf_db_query($q, $app->db());
if (!$res) {
die(xf_db_error($app->db()));
}
$affected_rows[$q] = xf_db_affected_rows($app->db());
}
$this->assertEquals(array("delete from `PeopleIntl` where `PersonID` = 5", "delete from `PeopleIntl_en` where `PersonID` = 5", "delete from `PeopleIntl_fr` where `PersonID` = 5"), $tsql);
$this->assertEquals(array("delete from `PeopleIntl` where `PersonID` = 5" => 1, "delete from `PeopleIntl_en` where `PersonID` = 5" => 0, "delete from `PeopleIntl_fr` where `PersonID` = 5" => 0), $affected_rows);
}
开发者ID:Zunair,项目名称:xataface,代码行数:20,代码来源:QueryTranslator_Test.php
示例19: handle
function handle(&$params)
{
import('Dataface/FormTool.php');
import('Dataface/QuickForm.php');
$formTool =& Dataface_FormTool::getInstance();
$app =& Dataface_Application::getInstance();
$query =& $app->getQuery();
$resultSet =& $app->getResultSet();
$currentRecord =& $app->getRecord();
$currentTable =& Dataface_Table::loadTable($query['-table']);
if (!isset($query['--tab']) and count($currentTable->tabs($currentRecord)) > 1) {
$tabs = $currentTable->tabs($currentRecord);
uasort($tabs, array($formTool, '_sortTabs'));
list($query['--tab']) = array_keys($tabs);
} else {
if (count($currentTable->tabs($currentRecord)) <= 1) {
unset($query['--tab']);
}
}
$includedFields = null;
// Null for all fields
if (@$query['-fields']) {
$includedFields = explode(' ', $query['-fields']);
}
/*
*
* Create the quickform for the current record.
*
*/
//$form = new Dataface_QuickForm($query['-table'], $app->db(), $query);
if ($resultSet->found() > @$query['-cursor']) {
$form = $formTool->createRecordForm($currentRecord, false, @$query['--tab'], $query, $includedFields);
/*
* There is either a result to edit, or we are creating a new record.
*
*/
$res = $form->_build();
if (PEAR::isError($res)) {
error_log($res->toString() . implode("\n", $res->getBacktrace()));
throw new Exception("An error occurred while building the edit form. See error log for details.", E_USER_ERROR);
}
$formTool->decorateRecordForm($currentRecord, $form, false, @$query['--tab']);
/*
*
* We need to add the current GET parameter flags (the GET vars starting with '-') so
* that the controller knows to pass control to this method again upon form submission.
*
*/
foreach ($query as $key => $value) {
if (strpos($key, '-') === 0) {
$form->addElement('hidden', $key);
$form->setDefaults(array($key => $value));
}
}
/*
* Store the current query string (the portion after the '?') in the form, so we
* can retrieve it after and redirect back to our original location.
*/
$form->addElement('hidden', '-query');
$form->setDefaults(array('-action' => $query['-action'], '-query' => $_SERVER['QUERY_STRING']));
/*
*
* We have to deal with 3 cases.
* 1) The form has not been submitted.
* 2) The form was submitted but didn't validate (ie: it had some bad input)
* 3) The form was submitted and was validated.
*
* We deal with Case 3 first...
*
*/
if ($formTool->validateRecordForm($currentRecord, $form, false, @$query['--tab'])) {
/*
*
* The form was submitted and it validated ok. We now process it (ie: save its contents).
*
*/
$app->clearMessages();
$formTool->handleTabSubmit($currentRecord, $form, @$query['--tab']);
if (!isset($query['--tab'])) {
// If we aren't using tabs we just do it the old way.
// (If it ain't broke don't fix it
$result = $form->process(array(&$form, 'save'));
} else {
// If we are using tabs, we will use the formtool's
// session aware saving function
$result = $formTool->saveSession($currentRecord);
}
$success = true;
$response =& Dataface_Application::getResponse();
if (!$result) {
error_log("Error occurred in save: " . xf_db_error($app->db()) . Dataface_Error::printStackTrace());
throw new Exception("An error occurred while attempting to save the record. See error log for details.", E_USER_ERROR);
} else {
if (PEAR::isError($result) && !Dataface_Error::isNotice($result)) {
if (Dataface_Error::isDuplicateEntry($result)) {
$app->addError($result);
$success = false;
} else {
error_log($result->toString() . implode("\n", $result->getBacktrace()));
throw new Exception("An error occurred while attempting to save the record. See error log for details.", E_USER_ERROR);
//.........这里部分代码省略.........
开发者ID:minger11,项目名称:Pipeline,代码行数:101,代码来源:edit.php
示例20: handle
function handle(&$params)
{
$app = Dataface_Application::getInstance();
header('Content-type: text/html; charset=' . $app->_conf['oe']);
$record =& $app->getRecord();
$query =& $app->getQuery();
if (isset($_REQUEST['-form-id'])) {
$formid = $_REQUEST['-form-id'];
} else {
$formid = 'ajax-form-' . rand();
}
// First let's figure out what kind of form this is
$form_type = @$_REQUEST['-form-type'];
$form = null;
if (isset($_REQUEST['-fields'])) {
$fields = explode(',', $_REQUEST['-fields']);
} else {
$fields = null;
}
switch ($form_type) {
case 'new':
$form = df_create_new_record_form($query['-table'], $fields);
$form->_build();
break;
case 'edit':
$form = df_create_edit_record_form($query['-table'], $fields);
break;
case 'new_related_record':
$form = df_create_new_related_record_form($record, $query['-relationship'], $fields);
break;
case 'existing_related_record':
$form = df_create_existing_related_record_form($record, $query['-relationship']);
break;
case 'composite':
import('Dataface/CompositeForm.php');
$form = new Dataface_CompositeForm($fields);
$form->build();
break;
default:
@(include_once 'forms/' . $form_type . '.php');
if (!class_exists('forms_' . $form_type)) {
return PEAR::raiseError('Could not find form of type "' . $form_type . '".', DATAFACE_E_ERROR);
}
$classname = 'forms_' . $form_type;
$form = new $classname($fields);
break;
}
// We want the form to be submitted to the embedded iframe
$form->updateAttributes(array('target' => $formid . '-target', 'accept-charset' => $app->_conf['ie']));
$formparams = preg_grep('/^-[^\\-].*/', array_keys($query));
foreach ($formparams as $param) {
$form->addElement('hidden', $param);
$form->setDefaults(array($param => $query[$param]));
}
$form->addElement('hidden', '-form-id');
$form->setDefaults(array('-form-id' => $formid));
// Now that we have our form, we can do our thing with it.
if ($form->validate()) {
/*
*
* The form was submitted and it validated ok. We now process it (ie: save its contents).
*
*/
$app->clearMessages();
$result = $form->process(array(&$form, 'save'));
$success = true;
$response =& Dataface_Application::getResponse();
if (!$result) {
trigger_error("Error occurred in save: " . xf_db_error($app->db()) . Dataface_Error::printStackTrace(), E_USER_ERROR);
exit;
} else {
if (PEAR::isError($result) && !Dataface_Error::isNotice($result)) {
if (Dataface_Error::isDuplicateEntry($result)) {
return $result;
} else {
trigger_error($result->toString() . Dataface_Error::printStackTrace(), E_USER_ERROR);
exit;
}
} else {
if (Dataface_Error::isNotice($result)) {
$app->addError($result);
$success = false;
}
}
}
if ($success) {
import('Dataface/Utilities.php');
Dataface_Utilities::fireEvent('after_action_ajax_form');
$msg = implode("\n", $app->getMessages());
//$msg =@$response['--msg'];
$msg = urlencode(Dataface_LanguageTool::translate(
|
请发表评论