2014-01-10 4 views
0

Я новичок в pdo. Здесь я пытаюсь редактировать и обновлять записи в базе данных с помощью pdo. Ниже я разместил здесь свои две страницы. На главной странице я приведу подробности конкретной таблицы базы данных. Если пользователь нажимает ссылку «Редактировать», он перенаправляет на другую страницу для редактирования значений конкретной записи с использованием GET['id'];. В editpage я пытаюсь извлечь мои уже сохраненные значения. Но я не могу это получить. Я попробовал print_r($username); и var_dump($username);. Он не показывал значение в editpage.PDO не может получить значения базы данных

Главная PHP кодирования: кодирование

<?php 
    include('config.php'); 

    $sql = "SELECT * FROM ebusers"; 
    $db = $conn->query($sql); 
    $db->setFetchMode(PDO::FETCH_ASSOC); 

    while($row = $db->fetch()) 
      { 
      echo "<td>". $row['UserID'] ."</td>"; 
      echo "<br>"; 
      echo "<td><a target=_blank href='edit.php?id=". $row['UserName'] ."'>Edit</a></td>"; 
      echo "<br>"; 
      } 
    ?> 

Editpage PHP:

<?php 
    include('config.php'); 

    $uid = $_GET['id']; 
    $sql = "SELECT * FROM ebusers WHERE UserID = '$uid'"; 
    $db = $conn->query($sql); 
    $db->setFetchMode(PDO::FETCH_ASSOC); 

    if($db->fetchColumn()>=1) 
    { 
     while($row = $db->fetch()) 
     { 
      $username = $row['UserName']; 
     } 

    } 
?> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <form action="delete.php" method="post"> 
     <input type="text" name="name" value="<?php echo $username;?>" /> 
     <input type="submit" /> 
    </form> 
</body> 
</html> 

Config PHP страница

$user = "root"; 
    $password = "password"; 

    try 
    { 
     $conn = new PDO('mysql:host=localhost;dbname=evouchers', $user, $password); 
     $conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } 
    catch(PDOException $e) 
    { 
     echo 'DATABASE ERROR : ' . $e->getMessage(); 
    } 

Я не знаю, где я ошибся?

+0

ли система дает вам некоторую ошибку? – Goikiu

+0

нет, я не получил никаких ошибок. он показывает пустую страницу – Karuppiah

+0

, пожалуйста, покажите нам config.php и 'var_dump ($ db)' –

ответ

1

Почему вы сначала берете первый столбец. Оцените его в выражении if. А после этого возьмите всю строку?

Что происходит, когда вы меняете

if($db->fetchColumn()>=1) 
{ 
    while($row = $db->fetch()) 
    { 
     $username = $row['UserName']; 
    } 
} 

в

while($row = $db->fetch()) 
{ 
    var_dump($row['UserName']); 
} 
+0

его работы. почему я должен удалить это if ($ db-> fetchColumn()> = 1)? – Karuppiah

+0

Возможно, это потому, что вы запрашиваете одну запись. И, выполнив 'fetchColumn', для возврата' fetch' не останется никаких данных. Другая причина заключается в том, что 'fetchColumn' возвращает значение non int, что делает ошибку if ... – tlenss

+1

выше вы можете увидеть комментарий от Royal Bg. Он говорит, что после того, как вы заработали, переходите к подготовленным заявлениям. не может понять? не могли бы вы рассказать мне? – Karuppiah

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