2011-07-16 39 views
-3

我可以爲PDO或mysqli使用重寫這個函數嗎?如果是這樣,請舉例說明。PHP函數爲PDO重寫

function dbquery($query) { 
    global $mysql_queries_count, $mysql_queries_time; $mysql_queries_count++; 

    $query_time = get_microtime(); 
    $result = @mysql_query($query); 
    $query_time = substr((get_microtime() - $query_time),0,7); 

    $mysql_queries_time[$mysql_queries_count] = array($query_time, $query); 

    if (!$result) { 
     echo mysql_error(); 
     return false; 
    } else { 
     return $result; 
    } 
} 

function dbrows($query) { 
    $result = @mysql_num_rows($query); 
    return $result; 
} 

function dbarray($query) { 
    $result = @mysql_fetch_assoc($query); 
    if (!$result) { 
     echo mysql_error(); 
     return false; 
    } else { 
     return $result; 
    } 
} 

<?php $result = dbquery("SELECT * FROM ".DB_THREADS." INNER JOIN ".DB_USERS." WHERE thread_lastuser=user_id ORDER BY thread_lastpost DESC LIMIT 5"); 
if (dbrows($result) != 0) { 
while ($data = dbarray($result)) { 
<?php echo $data['thread_id']; 
<?php } } ?> 

感謝

+0

傑克,這不是一個「代碼爲我」的網站。你可以嘗試自己的問題,然後提出問題,看看對你來說什麼不好,或者你得到的錯誤。 – hakre

+0

你想重寫哪個函數,因爲除非我錯了,否則你已經發布了*** 3 ***函數! – Dan

回答

3
+0

對不起,不問你是否可以重寫所有它..只是提供一個例子。 上述功能是否可以編輯,並且可以在不改變代碼查詢的情況下按PDO用法使用。 – Jack

+1

如果您查看我的鏈接,您將在30分鐘內知道所有關於pdo的信息。 __如果你給一個男人一條魚,那麼你給他一天的時間,如果你教一個男人去捕魚,你就會養活他一輩子.__是的,查詢可以是一樣的。 –

3

這裏是你的代碼改寫爲使用PDO:

$dsn = 'mysql:dbname=testdb;host=127.0.0.1'; 
$user = 'dbuser'; 
$password = 'dbpass'; 

try { 
    $db = new PDO($dsn, $user, $password); 
} catch (PDOException $e) { 
    echo 'Connection failed: ' . $e->getMessage(); 
    die(); 
} 

function dbquery($query) { 
    global $db, $mysql_queries_count, $mysql_queries_time; $mysql_queries_count++; 

    $query_time = get_microtime(); 
    $result = $db->query($query); 
    $query_time = substr((get_microtime() - $query_time),0,7); 

    $mysql_queries_time[$mysql_queries_count] = array($query_time, $query); 

    if (!$result) { 
     echo $db->errorCode(); 
     return false; 
    } else { 
     return $result; 
    } 
} 

function dbrows($query) { 
    global $db; 
    $result = $db->exec($query); 
    return $result; 
} 

function dbarray($results) {; 
    $result = $results->fetch(FETCH_ASSOC); 
    if (!$result) { 
     echo $results->errorCode(); 
     return false; 
    } else { 
     return $result; 
    } 
} 

<?php $results = dbquery("SELECT * FROM ".DB_THREADS." INNER JOIN ".DB_USERS." WHERE thread_lastuser=user_id ORDER BY thread_lastpost DESC LIMIT 5"); 
if (dbrows($results) != 0) { 
while ($data = dbarray($results)) { 
<?php echo $data['thread_id']; 
<?php } } ?> 

我已經儘可能少地改變了,只是爲了向您展示PDO的功能,所以我沒有做出一些可能的改進。欲瞭解更多信息,請看the documentation for PDO

+0

沒想到有人會真的重寫該代碼...你得到一個+1 :) –

+0

這是完美的! – aksu