2017-07-26 44 views
1

我有使用MySQLi訪問數據庫的代碼,我想更改爲PDO語句,任何人都可以提供幫助?這裏是我的代碼:如何:MySQLi到PDO

function select_data($user_id, $start_date, $end_date) 
{ 
    global $connection; 

    $sql = "SELECT * FROM attendancy 
     WHERE user_id = $user_id 
     AND date >= '$start_date' 
     AND date <= '$end_date'"; 

    $result = $connection->query($sql); 
    if(!is_object($result)) return array(); 

    $data = array(); 

    while($row = $result->fetch_assoc()) 
    { 
     $row['duration'] = count_work_hours($row); 
     $data[] = $row; 
    } 

    return $data; 
} 
+0

你至今嘗試過什麼? –

+0

'mysqli'也很好,如果你使用參數化格式 – C2486

+0

我有,但沒有工作 – pranatayudha

回答

0
function select_data($user_id, $start_date, $end_date) 
{ 
    global $connection; 

    $sql = "SELECT * FROM attendancy 
     WHERE user_id = :user_id 
     AND date >= :start_date 
     AND date <= :end_date"; 

    $stmt = $connection->prepare($sql,[PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]); 

    $stmt->execute([":user_id" => $user_id, ":start_date" => $start_date, ":end_date" => $end_date]); 

    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);   

    if(!count($results)){ 
     return array(); 
    } 
    else{ 

     $data = array(); 

     foreach($results as $row){ 

      $row['duration'] = count_work_hours($row); 
      $data[] = $row; 
     } 
    } 

    return $data; 
} 
+0

謝謝,它已經解決了! @Eng Cy – pranatayudha

+0

不,很高興幫助 –