Функция PHP переписать для PDO - PullRequest
0 голосов
/ 16 июля 2011

Могу ли я переписать эту функцию для использования в PDO или mysqli?Если да, приведите пример.

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 } } ?>

Спасибо

Ответы [ 2 ]

3 голосов
/ 16 июля 2011

Вот ваш код, переписанный для использования 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, поэтому я не сделал некоторых улучшений, которые были бы возможны для него. Для получения более подробной информации, посмотрите документацию для PDO .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...