這似乎應該是一個非常簡單的任務,但我不確定它是什麼。PHP PDO選擇查詢結果
我想使用PDO做一個SELECT查詢,然後在找出是否有任何結果(行)後立即檢查,如果有的話。
我想將結果作爲一個對象而不是一個數組來獲取,因爲我喜歡$ obj-> col_name語法,並且僅僅爲了找到上面的內容而返回一個數組感覺有點不對。
$qryh = $conn->query("SELECT ...");
然後使用$qryh
先查明是否有任何行,如果有的話多少。
這可以做到沒有回落到使用陣列..?
UPDATE:
我知道rowCount()
,但我認爲它只能在UPDATE,INSERT和DELETE - 我的問題涉及到選擇。
更新2:
我使用的是SQL Server和MS Access中,沒有MySQL和rocount()不工作。
發現的解決方案
接受的答案領先的解決方案。以下是我發現:
我創建了PDO對象(new PDO(...
),其在rowCount()
返回-1
當PDO::ATTR_CURSOR
選項設置爲PDO::CURSOR_SCROLL
。但是,如果我使用數組(array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL)
)將光標設置在->prepare(...
內,它將起作用並返回行數。
http://technet.microsoft.com/en-us/library/ff628154(v=sql.105).aspx
因此,在上面的鏈接作品的例子中,設置光標在創建PDO對象不起作用。還請注意,在上述鏈接的'備註'部分,它提到PDO::CURSOR_SCROLLABLE
哪個不適合我(我得到Undefined class constant 'CURSOR_SCROLLABLE'
)。
rowCount不適用於SELECT它...?只有UPDATE,INSERT和DELETE ..?!! –
Only with MySQL我認爲 – GaijinJim
http://www.php.net//manual/en/pdostatement.rowcount.php –