2015-03-07 4 views
0

Я ОЧЕНЬ новичок в PHP/PDO, поэтому, пожалуйста, будьте осторожны ...

Я пытаюсь ввести код в свою базу данных, а затем забрать его на веб-страницу. Я могу сделать первый, но мне трудно его отобразить. Мне интересно, если это потому, что я пытаюсь объединить $ stmt и $ handler вместе?

Это мой код для ввода информации в базу данных:

try { 
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 

    // set the PDO error mode to exception 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    // prepare sql and bind parameters 
    $stmt = $conn->prepare("INSERT INTO survey (storename, receipt, date_visit) 
    VALUES (:storename, :receipt, :date_visit)"); 
    $stmt->bindParam(':storename', $storename); 
    $stmt->bindParam(':receipt', $receipt); 
    $stmt->bindParam(':date_visit', $date_visit); 

    // insert a row 
    $storename = $_POST['storename']; 
    $receipt = $_POST['receipt']; 
    $date_visit = $_POST['date_visit']; 

} 
catch(PDOException $e) 
{ 
    echo "Error: " . $e->getMessage(); 
} 
$conn = null; 

Он отлично работает.

Это мой код для получения информации из моей базы данных.

<?php 

try { 
    $handler = new PDO('mysql:host=localhost;dbname=test', 'test', 'test'); 
    $handler->setAttribute(PDO::ATRR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch(PDOException $e) { 
    echo $e->getMessage(); 
    die(); 
    } 

class SurveyEntry { 
    public $id, $storename, $receipt, $date_visited, 
     $entry; 

    public function __construct() { 
     $this->entry = "{$this->storename} posted: {$this->receipt}"; 
    } 
} 

$query = $handler->query('SELECT * FROM survey'); 
$query->setFetchMode(PDO::FETCH_CLASS, 'SurveyEntry'); 
while($r = $query->fetch()) { 
    echo $r->entry, '<br>'; 
} 

?> 

Я могу подтвердить, что он правильно подключается, но я не могу получить его для отображения любой информации. Мне интересно, как это связано с различием в $ stmt и $ handler, которые я использую? Я слежу за учебниками онлайн и, возможно, смешиваю 2 учебника вместе, чтобы попытаться достичь того, что я ищу.

UPDATE:

мне удалось заставить его работать путем обновления, как я позвонил из базы данных:

$host = "localhost"; 
$dbname = "test"; 

$user = "test"; 
$password = "test"; 

$handler = new PDO("mysql:dbname=$dbname;host=$host" , $user , $password); 
+0

опечатка 'query' в' $ handler-> guery'. У вас есть 'g' вместо' q'. – Barmar

+0

Неважно, что вы называете переменными. Вы можете назвать это '$ stmt' в одном скрипте и' $ handler' в другом скрипте, они не должны совпадать. – Barmar

+0

К сожалению, вы правы. К сожалению, это, похоже, не проблема, хотя она все еще не работает. – user2132851

ответ

0

Фигурные это - я имел «ATRR_ERRMODE» вместо «ATTR_ERRMODE» (опечатка)

0

как вы?

Вы должны попробовать это исправить:

1- два различных соединения:

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 


$handler = new PDO('mysql:host=localhost;dbname=test', 'test', 'test'); 
Смежные вопросы