2012-10-11 93 views
1

我正在使用joomla查詢。如何使用插入查詢joomla 2.5?

$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 

回答

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]');"; 
+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'是連接表的主鍵的名稱。

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