我正在为Joomla 1.7开发一个简单的留言簿。
如果我尝试插入新消息,JDatabase会插入一个空行,我不知道原因。
这里的表结构
DROP TABLE IF EXISTS `#__agb_messages`;
CREATE TABLE `#__agb_messages` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`message` TEXT NOT NULL,
PRIMARY KEY (`id`)
);
这里是我用来插入新行并加载现有行的代码
public function getMessages() {
$db = JFactory::getDBO();
echo "<pre>";
print_r(JRequest::get('post'));
echo "</pre>";
$post = JRequest::get('post');
if (
!empty($post['name'])
&& !empty($post['message'])
)
{
$query = 'INSERT INTO #__agb_messages SET name="'.(string)$post['name'].'" AND message="'.(string)$post['message'].'"';
$db->setQuery($query);
echo $db->getQuery();
$db->query();
echo $db->getErrorMsg();
}
$query = 'SELECT * FROM #__agb_messages ORDER BY id DESC';
$db->setQuery($query);
$messages = $db->loadObjectList();
return $messages;
}
这就是我得到的
Array
(
[0] => stdClass Object
(
[id] => 1
[name] => 0
[message] =>
)
)
答案 0 :(得分:1)
您好检查插入查询格式......
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
这是INSERT
查询的正确语法。
答案 1 :(得分:0)
还考虑使用Joomla的JDatabase
类来进行插入;)
public function insertObject (
$table
&$object
$keyName=NULL
)
http://docs.joomla.org/JDatabase::insertObject/1.6
我猜它也适用于Joomla 1.7
答案 2 :(得分:0)
扩展Jtable并使用Joomla API中的内置方法