2015-03-12 4 views
0

Так что у меня проблемы с переходом от mysql_ * к PDO-подобным операциям. У меня есть таблица, в которой я выводя другой столбец для каждой строки. Тем не менее, я не уверен, как я могу добиться этого с помощью PDO.Перезапись mysql_ * с PDO (табличным содержимым)

 $SQL = "SELECT `id`, `email`, `information`, `type`, `language`, `status` FROM `requests`"; 
     $exec = mysql_query($SQL, $link); 
      while ($row = mysql_fetch_array($exec)){ 
       echo "<tr class='tg-031e'>"; 
       echo "<td class='tg-031e'><input type='checkbox' name='checkbox[]' value=" . $row['id'] . "></form></td>"; 
       echo "<td class='tg-031e'>" . $row['email'] . "</td>"; 
       echo "<td class='tg-031e'><textarea readonly style='width:470px;height:80px;border:none;resize:none'>" . $row['information'] . "</textarea></td>"; 
       echo "<td class='tg-031e'>" . $row['type'] . "</td>"; 
       echo "<td class='tg-031e'>" . $row['language'] . "</td>"; 
       if(isset($_POST['checkbox'])){ 
       foreach($_POST['checkbox'] as $update_id){ 
        $update_id = (int)$update_id; 
        $qR = "UPDATE requests SET status='✔' WHERE id=$update_id"; 
        mysql_query($qR); 
            header('Refresh: 1; URL=index.php'); 
       } 
       } 
     } 

Например, как я извлечь все из type колонки в PDO?

echo "<td class='tg-031e'>" . $row['type'] . "</td>"; 
+1

[ 'выборки()'] (http://php.net/manual/en/pdostatement.fetch.php) –

ответ

0

Простой класс дб для начала работы:

<?php 


class db { 

    public static $db_host = ""; 
    public static $db_user = ""; 
    public static $db_pass = ""; 
    public static $db_name = ""; 

    public static function dbFactory() { 
     $host = self::$db_host; 
     if(strpos($host,":") !==false) { 
      $parts = explode(":",$host); 
      $hostname = "unix_socket=".$parts[1]; 
     } else { 
      $hostname = "host=$host"; 
     } 
     $user = self::$db_user; 
     $pass = self::$db_pass; 
     $dbase = self::$db_name;   
     $pdo = new PDO("mysql:$hostname;dbname=$dbase", $user, $pass); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);   
     return $pdo; 
    } 
} 

$id = 115; 

$pdo = db::dbFactory(); 
$stmt = $pdo->prepare("SELECT * FROM `tablename` WHERE `id` = :id "); 
$stmt->bindValue(':id', $id, PDO::PARAM_INT); 
$stmt->execute(); 
$res = $stmt->fetchAll(PDO::FETCH_ASSOC); 

print_r($res); 
+0

К сожалению, как это связано с вопросом? – schmitsz

+0

@schmitsz приведенный выше код дает OP пример того, как начать работу с pdo и получить массив массивов с результатами запроса. Кажется, это так, что он может дать ОП идею переписать его код. Может быть, я что-то не понял, но в данном примере OP сделал «fetch_array». Я показываю ему способ получить все результаты в массив с pdo. Это можно использовать для перезаписи данного кода. – steven

Смежные вопросы