這是一個較大的查詢,我在phpmyadmin制定的一個子集,但我有點迷路和混淆在獲取它的語法在Joomla中創建的組件中工作。Joomla:似乎無法刪除或創建表,甚至刪除行使用JDatabase
,在phpMyAdmin的工作代碼:
$query = parent::getListQuery();
$query->dropTable('#__tests_mod_ques', 'true');
$query->createTable('#__tests_mod_ques AS
select (p.student_userid
, q.question_mod
, q.question_id
, p.student_passedchk)
');
$query->from('#__tests_students AS p');
$query->join('#__tests_questions AS q ON p.question_id = q.question_id');
$query->group('p.student_userid
, q.question_mod
, q.question_id
, p.student_passedchk
');
....
$db = $this->getDbo();
return $query;
我測試只是DROPTABLE statment即使它並沒有引發錯誤:
drop table if exists tests_mod_ques;
create table tests_mod_ques as
select p.student_userid, q.question_mod, q.question_id, p.student_passedchk
from `tests_students` p
inner join `tests_questions` q on p.question_id = q.question_id
group by p.student_userid, q.question_mod, q.question_id, p.student_passedchk
;
說的投擲1064語法錯誤的代碼它沒有丟掉表格,也沒有顯示在調試器中,所以我可能沒有正確使用它: http://api.joomla.org/Joomla-Platform/Database/JDatabase.html#dropTable
似乎無法找到y參考創建除了這個: http://api.joomla.org/Joomla-Platform/Database/JDatabase.html#getTableCreate
另外我有一個INSERT…ON DUPLICATE KEY UPDATE
查詢即將到來,我不知道如何接近要麼。
謝謝!
編輯
我試圖刪除行作爲一種解決辦法,也沒有登記。再次檢查調試器,刪除查詢沒有顯示出來。
$query->delete('#__tests_mod_ques');
這應該根據http://api.joomla.org/Joomla-Platform/Database/JDatabaseQuery.html#$delete
和http://docs.joomla.org/JDatabaseQuery::delete/1.6
令人沮喪的工作!任何人有任何想法?
謝謝!
你可以打印查詢,這樣你就可以看到它是否被DB類正確解釋了嗎? – 2012-04-01 19:42:08
如果我' (這可能是一個很大的if!),那麼dropTable沒有顯示出來,在那裏拋出一個'print_r($ query);',dropTable沒有顯示出來,但是查詢的其餘部分(' ......'那個工作的部分)做了,它也沒有出現在調試器中,爲什麼我認爲我沒有正確使用它,但找不到好的例子。 – Gisto 2012-04-01 20:01:49