2011-10-04 89 views
4

以下select返回一個空的結果集,儘管它shoudn't:TYPO3:exec_SELECTquery與where子句

$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'tx_xmluploader_xml_import_tree', 'xml_import_id='.$xml_import_id);

$xml_import_id被設置。和它的作品,如果我刪除where條款..

感謝


我還是不明白爲什麼它不工作..由coleague提出了一個簡單的解決方法:

// select all from the db  
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'tx_xmluploader_xml_import_tree'); 

while($entry = $GLOBALS['TYPO3_DB']->sql_fetch_assoc()) 
{ 
    if($entry['xml_import_id'] == $xml_import_id) { 
     .... 
    }  
} 
+0

究竟你「是不是爲我工作」是什麼意思?空結果集?錯誤信息? –

+0

它返回一個空的結果集。 – Astrip

+0

只是爲了得到更新:是否有任何這些答案適合你? – Mateng

回答

2

首先,確保在localconf.php設置如下:

$TYPO3_CONF_VARS['SYS']['sqlDebug'] = '1'; 
$TYPO3_CONF_VARS['FE']['debug'] = '1'; 

然後嘗試

$res = $GLOBALS['TYPO3_DB']->SELECTquery('*', 'tx_xmluploader_xml_import_tree', 'xml_import_id='.$xml_import_id); 
t3lib_div::debug($res); 

結果是前端查詢的輸出。然後你可以在MySQL中執行它進行調試。

+0

我已經看到't3lib_div :: debug();'在後端模塊中使用過一次,但在前端我只能看到:'|調試|'。 – Astrip

+0

然後,您傳遞給調試的值爲空。請注意,我建議的函數是'$ GLOBALS ['TYPO3_DB'] - > SELECTquery'(不含'exec_'前綴)。對於測試,還可以嘗試't3lib_div :: debug('測試調試功能');' – Mateng

+0

調試的結果是:SELECT * FROM tx_xmluploader_xml_import_tree WHERE xml_import_id = 9。我在MySQL中執行了查詢,它工作。那可能是什麼錯誤? :(謝謝.. – Astrip

2

一)確保$ xml_import_id實際上有一個值(其中一個是在數據庫中也一樣)

B)試試這個:

$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
    '*', 
    'tx_xmluploader_xml_import_tree', 
    "xml_import_id='".$xml_import_id."'" 
); 

你怎麼處理結果? 您預期的$ xml_import_id值的外觀如何?

銅 羅馬

+0

$ xml_import_id是9,就像在我的數據庫中一樣。我試過'print_r(mysql_fetch_assoc($ res))' - 它不打印任何東西。 – Astrip

+0

我試過''xml_import_id ='「。$ xml_import_id。」'「 '也是如此,但$ res仍然是空的。 – Astrip