如何使用插入查询joomla 2.5?

时间:2012-10-11 10:20:10

标签: php mysql joomla

我正在使用joomla的查询。

$query = "INSERT INTO '#__demo'( 'id', 'fname', 'mname', 'lname' ) VALUES ( '$val', '$post['fname']', '$post['Mname']', '$post['Lname']' );";

给出错误

syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING 

3 个答案:

答案 0 :(得分:4)

要插入数据,您也可以在joomla 2.5中使用此格式:

$data =new stdClass();
$data->id = null;
$data->field1 = 'val1';
$data->field2 = 'val2';
$data->field3 = 'val3';

$db = JFactory::getDBO();
$db->insertObject( '#__mytable', $data, id );

stdClass是一个php基类,所有其他类都可以从中扩展。

'id'是连接表的主键名称。

答案 1 :(得分:2)

您的查询有两个错误。

  1. 您尚未使用$_POST值转义引号。

    '$post['fname']'
    //     ^ here and other places
    
  2. 您使用单引号'来表示表和字段名称。

     .. INTO '#__demo'( ..       
    //       ^ here and other places
    
  3. 现在解决了所有这些问题。您的查询变为:

    $query = "INSERT INTO `#__demo` ( `id`, `fname`, `mname`, `lname` ) VALUES ( '$val', '$post[fname]', '$post[Mname]', '$post[Lname]' );";
    

答案 2 :(得分:0)

您可以使用更加格式化的方式编写插入查询

$db = JFactory::getDBO(); // get the connection
$query = $db->getQuery(true);

$columns = array('field1','field2'); // set the column names to a variable 
$values = array(1,$db->quote('Your message'));

$query->insert($db->quoteName('#__tablename'))
      ->columns($db->quoteName($columns))
      ->values(implode(',',$values));

$db->setQuery($query);  
$db->execute();

$tourid = $db->insertid(); // get the last inserted id

您可以从这里获得参考资料

https://docs.joomla.org/Inserting,_Updating_and_Removing_data_using_JDatabase