2015-06-11 53 views
2

當我嘗試從某些列獲取值並使用 SELECT 2010,2011 FROM blablatable 然後我只獲取表名(在瀏覽器中檢查)。 當我使用SELECT * FROM blablatable 然後我得到(當然一切),但是然後年colums的內容顯示正確(在瀏覽器中檢查)。 現在在同一個表中的其他列顯示正確,我使用這個PHP腳本來獲取數據到Livecode中的數據網格。除了年份欄目以外,一切正常。然後datagrid發生錯誤。 我不明白爲什麼它給表而不是提供數據。 我已經在Livecode中使用相同的調整腳本,並且工作正常。所以測試了一些東西,無論是PHP腳本還是數據庫都給出了麻煩。SELECT * FROM給出其他結果然後選擇2010,2011從

這些是2個PHP testscripts我使用的部分: _______First的腳本,只給出了表names__notgood___

$hostname_connLivecode = "localhost"; 
    $database_connLivecode = "blabla"; 
    $username_connLivecode = "blabla"; 
    $password_connLivecode = "blabla"; 
    $connLivecode = mysql_pconnect($hostname_connLivecode, $username_connLivecode, $password_connLivecode) or trigger_error(mysql_error(),E_USER_ERROR); 

//2. Perform database query 

mysql_select_db($database_connLivecode, $connLivecode); 
$query_rsUser = ("SELECT 2010,2011 FROM blabla_table ORDER BY id"); 

$rsUser = mysql_query($query_rsUser, $connLivecode) or die(mysql_error()); 
$row_rsUser = mysql_fetch_assoc($rsUser); 
$totalRows_rsUser = mysql_num_rows($rsUser); 

if ($totalRows_rsUser == 0) { 
    echo "no data found"; 
} 


do { 
    echo $row_rsUser["id"]."\t".$row_rsUser["2010"]."\t".$row_rsUser["2011"]."\n"; 
    } while ($row_rsUser = mysql_fetch_assoc($rsUser)); 

?> 

____________Now,讓正確的info_____

$hostname_connLivecode = "localhost"; 
$database_connLivecode = "blabla"; 
$username_connLivecode = "blabla"; 
$password_connLivecode = "blabla"; 
$connLivecode = mysql_pconnect($hostname_connLivecode, $username_connLivecode, $password_connLivecode) or trigger_error(mysql_error(),E_USER_ERROR); 

//2. Perform database query 

mysql_select_db($database_connLivecode, $connLivecode); 
$query_rsUser = ("SELECT * FROM blabla_table ORDER BY id"); 

$rsUser = mysql_query($query_rsUser, $connLivecode) or die(mysql_error()); 
$row_rsUser = mysql_fetch_assoc($rsUser); 
$totalRows_rsUser = mysql_num_rows($rsUser); 

if ($totalRows_rsUser == 0) { 
    echo "no data found"; 
} 


do { 
    echo $row_rsUser["id"]."\t".$row_rsUser["2010"]."\t".$row_rsUser["2011"]."\n"; 
    } while ($row_rsUser = mysql_fetch_assoc($rsUser)); 

?> 

腳本

有誰知道爲什麼SELECT *能正常工作嗎? 我不能使用這個,我必須使用列名稱。

任何幫助將不勝感激。

謝謝。

+0

* 「然後將DataGrid是給了一個錯誤」 * - 幸福? –

+0

不相關,但你不應該使用MySQL擴展。它已被棄用。使用mysqli或pdo代替 –

+0

你試過了$ query_rsUser =(「SELECT'2010','2011'FROM blabla_table ORDER BY id」); ? –

回答

4

你的這部分代碼SELECT 2010,2011

從手動http://dev.mysql.com/doc/refman/5.1/en/identifiers.html

「標識符可以以數字開始,但除非報價可能不包括純粹的數字。」

將這些列名稱包裝在刻度中。

SELECT `2010`,`2011` 
  • 既然你沒有張貼您的錯誤信息。

旁註:從這個答案複製/粘貼。滴答聲和普通報價看起來很相似,但並不相同。

例,其中將失敗:

SELECT '2010','2011' 

,因爲他們是正規'報價和由MySQL翻譯成文本字符串。

我看到一個OP將使用代碼的回答許多問題,而使用常規的報價,而不是蜱蟲,而不是複製/粘貼從回答的代碼本身。


腳註:

您應該考慮使用mysqli with prepared statements,或PDO with prepared statements他們更安全

  • mysql_函數現在已被棄用,並將從未來的PHP版本中刪除。

參考(S):

+0

我做了一個測試,並將2010專欄更改爲20_10,然後使用相同的腳本(相應地將2010更改爲20_10),它確實有效。 @Fred datagrid錯誤是:在列模板的行爲中發生錯誤。大塊:無法找到背景。我遵循這個網站上的信息:http://learninglivecode.blogspot.nl/2015/04/desperately-seeking-middleware.html這是很好用來解決使用PHP腳本訪問數據庫和獲取信息的謎題到Livecode中。但也許有比這更好的解決方案。謝謝大家,我將再次閱讀每一個答案! –

+0

@JeeJeeStudio不客氣。但請嘗試使用我的答案中概述的蜱蟲。 –

+0

我做了弗雷德,它的工作原理!在1號鍵盤左側找到它。大提示!還要檢查一些其他建議,不要使用MYSQL命令bu pdo。也許及時我可以一塊一塊改變它。非常感謝你的幫助。 –

相關問題