elliottbenzle
asked on
Error when updating Joomla DB
I'm trying to customize a Joomla script to add the current date when updating a table. I've added the following lines to my code which is causing an error.
$post_date = date('c');
".$db->nameQuote('post_dat e')."='".$ db->Quote( $post_date )."'
And the whole update looks like this:
function save($job) {
$post_date = date('c');
$db =& $this->getDBO();
$this->_query = "UPDATE ".$db->nameQuote('#__jobbo ard_jobs') ."
SET ".$db->nameQuote('post_dat e')."='".$ db->Quote( $post_date )."'
, ".$db->nameQuote('job_titl e')."=".$d b->Quote($ job->job_t itle)."
, ".$db->nameQuote('expiry_d ate')."='" .$job->exp iry_date." '
, ".$db->nameQuote('job_type ')." =".$db->Quote($job->job_ty pe)."
, ".$db->nameQuote('category ')." =".$db->Quote($job->catego ry)."
, ".$db->nameQuote('career_l evel')." =".$db->Quote($job->career _level)."
, ".$db->nameQuote('educatio n')." =".$db->Quote($job->educat ion_level) ."
, ".$db->nameQuote('position s')." =".$db->Quote($job->positi ons)."
, ".$db->nameQuote('country' )." =".$db->Quote($job->countr y_name)."
, ".$db->nameQuote('departme nt')." =".$db->Quote($job->depart ment)."
, ".$db->nameQuote('publishe d')." =".$db->Quote($job->publis hed)."
, ".$db->nameQuote('city')." =".$db->Quote($job->city). "
, ".$db->nameQuote('salary') ." =".$db->Quote($job->salary )."
, ".$db->nameQuote('descript ion')." =".$db->Quote($job->job_de scription) ."
, ".$db->nameQuote('duties') ." =".$db->Quote($job->duties )."
, ".$db->nameQuote('job_tags ')." =".$db->Quote($job->job_ta gs)."
WHERE ".$db->nameQuote('id')."=" .intval($j ob->id);
$db->setQuery($this->_quer y);
return $db->query();
}
If I change $post_date = date('c'); to $post_date = date();
I don't get the error, but my field is set to Tue, 30 Nov 1999 instead of the current date.
Any idea what I am doing wrong?
I've attached my full code below. Thanks.
$post_date = date('c');
".$db->nameQuote('post_dat
And the whole update looks like this:
function save($job) {
$post_date = date('c');
$db =& $this->getDBO();
$this->_query = "UPDATE ".$db->nameQuote('#__jobbo
SET ".$db->nameQuote('post_dat
, ".$db->nameQuote('job_titl
, ".$db->nameQuote('expiry_d
, ".$db->nameQuote('job_type
, ".$db->nameQuote('category
, ".$db->nameQuote('career_l
, ".$db->nameQuote('educatio
, ".$db->nameQuote('position
, ".$db->nameQuote('country'
, ".$db->nameQuote('departme
, ".$db->nameQuote('publishe
, ".$db->nameQuote('city')."
, ".$db->nameQuote('salary')
, ".$db->nameQuote('descript
, ".$db->nameQuote('duties')
, ".$db->nameQuote('job_tags
WHERE ".$db->nameQuote('id')."="
$db->setQuery($this->_quer
return $db->query();
}
If I change $post_date = date('c'); to $post_date = date();
I don't get the error, but my field is set to Tue, 30 Nov 1999 instead of the current date.
Any idea what I am doing wrong?
I've attached my full code below. Thanks.
<?php
/**
* @package JobBoard
* @copyright Copyright (c)2010 Tandolin
* @license GNU General Public License version 2, or later
*/
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.model');
class JobboardModelJob extends JModel
{
var $_total;
var $_id;
var $_query;
var $_data;
function __construct()
{
parent::__construct();
$cid = JRequest::getVar('cid', false, 'DEFAULT', 'array');
if($cid){
$id = $cid[0];
}
else $id = JRequest::getInt('id', 0);
$this->setId($id);
}
function setId($id=0)
{
$this->_id = $id;
$this->_query = null;
$this->_data = null;
$this->_total = null;
}
function getJob()
{
if(empty($this->_data))
{
$db = JFactory::getDBO();
$this->_query = 'SELECT j.post_date
, j.expiry_date
, j.job_title
, j.job_type
, j.country
, j.salary
, c.id AS catid
, c.type AS category
, jc.country_name
, jc.country_region
, cl.description AS job_level
, j.id AS job_id
, j.description
, j.positions
, j.city
, j.num_applications
, j.hits
, e.level AS education
FROM
#__jobboard_jobs AS j
INNER JOIN #__jobboard_categories AS c
ON (j.category = c.id)
INNER JOIN #__jobboard_career_levels AS cl
ON (j.career_level = cl.id)
INNER JOIN #__jobboard_education AS e
ON (e.id = j.education)
INNER JOIN #__jobboard_countries AS jc
ON (j.country = jc.country_id)
WHERE j.id = ' . $this->_id;
$db->setQuery($this->_query);
$this->_data = $db->loadObject();
}
return $this->_data;
}
function update($data) {
$db = JFactory::getDBO();
$this->_query = "UPDATE #__jobboard_applicants
SET email ='".$data->email."'
, tel ='".$data->tel."'
WHERE id=".$data->id;
$db->setQuery($this->_query);
return $db->query();
}
function save($job) {
$post_date = date();
$db =& $this->getDBO();
$this->_query = "UPDATE ".$db->nameQuote('#__jobboard_jobs')."
SET ".$db->nameQuote('post_date')."='".$db->Quote($post_date)."'
, ".$db->nameQuote('job_title')."=".$db->Quote($job->job_title)."
, ".$db->nameQuote('expiry_date')."='".$job->expiry_date."'
, ".$db->nameQuote('job_type')." =".$db->Quote($job->job_type)."
, ".$db->nameQuote('category')." =".$db->Quote($job->category)."
, ".$db->nameQuote('career_level')." =".$db->Quote($job->career_level)."
, ".$db->nameQuote('education')." =".$db->Quote($job->education_level)."
, ".$db->nameQuote('positions')." =".$db->Quote($job->positions)."
, ".$db->nameQuote('country')." =".$db->Quote($job->country_name)."
, ".$db->nameQuote('department')." =".$db->Quote($job->department)."
, ".$db->nameQuote('published')." =".$db->Quote($job->published)."
, ".$db->nameQuote('city')." =".$db->Quote($job->city)."
, ".$db->nameQuote('salary')." =".$db->Quote($job->salary)."
, ".$db->nameQuote('description')." =".$db->Quote($job->job_description)."
, ".$db->nameQuote('duties')." =".$db->Quote($job->duties)."
, ".$db->nameQuote('job_tags')." =".$db->Quote($job->job_tags)."
WHERE ".$db->nameQuote('id')."=".intval($job->id);
$db->setQuery($this->_query);
return $db->query();
}
function savenew($job) {
$db =& $this->getDBO();
$this->_query = "INSERT INTO #__jobboard_jobs
(post_date, job_title, expiry_date, job_type, category, career_level, education, positions, country, department, published, city, salary, description, duties, job_tags)
VALUES (UTC_TIMESTAMP, '".$db->getEscaped($job->job_title, true)."'
, '".$db->getEscaped($job->expiry_date, true)."'
, '".$job->job_type."'
, ".$db->getEscaped($job->category, true)."
, ".$db->getEscaped($job->career_level, true)."
, ".$db->getEscaped($job->education_level, true)."
, ".$db->getEscaped($job->positions, true)."
, ".$db->getEscaped($job->country_name, true)."
, ".$db->getEscaped($job->department, true)."
, ".$db->getEscaped($job->published, true)."
, '".$db->getEscaped($job->city, true)."'
, '".$db->getEscaped($job->salary, true)."'
, '".$db->getEscaped($job->job_description, true)."'
, '".$db->getEscaped($job->duties, true)."'
, '".$db->getEscaped($job->job_tags, true)."'
)";
$db->setQuery($this->_query);
return $db->query();
}
}
?>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER