我正在使用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
答案 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)
您的查询有两个错误。
您尚未使用$_POST
值转义引号。
'$post['fname']'
// ^ here and other places
您使用单引号'
来表示表和字段名称。
.. INTO '#__demo'( ..
// ^ here and other places
现在解决了所有这些问题。您的查询变为:
$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