1

我正在使用 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 
4

3 回答 3

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' 是连接表的主键名称。

于 2013-05-20T06:54:26.467 回答
2

您的查询有两个错误。

  1. 您没有在$_POST值中转义引号。

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

     .. INTO '#__demo'( ..       
    //       ^ here and other places
    

现在在消除所有这些问题之后。您的查询变为:

$query = "INSERT INTO `#__demo` ( `id`, `fname`, `mname`, `lname` ) VALUES ( '$val', '$post[fname]', '$post[Mname]', '$post[Lname]' );";
于 2012-10-11T10:25:18.950 回答
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

于 2015-04-17T04:03:03.870 回答