2014-10-01 37 views
0

我正在使用代碼獲取使用pdo的mysql查詢的結果到php變量 但我面臨一些問題,無法存儲結果查詢入變量 錯誤消息 致命錯誤:調用一個成員函數查詢()非對象上在...第4行錯誤的結果從MySQL中存儲在一個PHP變量pdo

<?php 
require 'test.php'; 
    $sql = "SELECT COUNT(*) FROM vup_file"; 
    if ($STH = $DBH->query($sql)) { 
    # check the row count 
    if ($STH->fetchColumn() > 0) { 

    echo $STH; 
    } 
    else { 
     echo "No rows matched the query."; 
    } 
} 

?> 

爲了清楚起見,從這個comment .. 。

I want to store the Maximum Id value in a php variable using pdo

+0

'$ DBH'應聲明爲全局 – 2014-10-01 06:36:02

+3

只要確保'$ DBH'是一個pdo連接的實例,是'test.php'裏面的連接嗎? – Ghost 2014-10-01 06:37:34

+0

'$ DBH = new PDO('mssql:host = sqlserver; dbname = database','username', 'password');' – 2014-10-01 06:39:26

回答

0

試試這個代碼:

選項1

<?php 
$DBH = new PDO('mysql:host=localhost;dbname=test', $user, $pass); 
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$sql = "SELECT COUNT(*) FROM vup_file"; 
if ($STH = $DBH->query($sql)) { 
    if ($STH->rowCount() > 0) { 
     echo "rows matched the query."; 
    } 
    else { 
     echo "No rows matched the query."; 
    } 
} 


選項2 @phil是正確的,如果你要在查詢中計算行數,你還不如讀值:

<?php 
$DBH = new PDO('mysql:host=localhost;dbname=test', $user, $pass); 
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$sql = "SELECT COUNT(*) as rowCount FROM vup_file"; 
$STH = $DBH->query($sql) 
$row = $STH->fetch(); 
if ($row['rowCount'] > 0) { 
    echo "rows matched the query."; 
} 
else { 
    echo "No rows matched the query."; 
} 

Sh烏爾德工作,只要連接和查詢是有效的

+0

解析錯誤:語法錯誤,意外的'<'.... on第2行 – 2014-10-01 06:45:43

+0

如果他們只是檢查* count> 0 *那麼查詢也可能是'SELECT 1 FROM vup_file' – Phil 2014-10-01 06:46:15

+0

@你是指'LIMIT 1'? – meda 2014-10-01 06:46:56

0

好了,從你的comment

I want to store the Maximum Id value in a php variable using pdo

看來你想是這樣的......

$max = $DBH->query('SELECT MAX(Id) FROM vup_file')->fetchColumn(); 
if ($max === false) { 
    echo 'There are no records in this table'; 
} 

我不知道爲什麼你打擾與COUNT(*)查詢。

相關問題