2009-09-30 3 views
3

Я только начал изучать Aboud PDO и подготовленные заявления (которые уверены, кажется, бить не забывая использовать mysql_real_escape_string() каждый раз), но у меня возникают проблемы при получении скрипт для выполнения должным образом:Помощь и устранение неисправностей PDO подготовленное заявление

<?php 
error_reporting(E_ALL); 
echo "start"; 

try{ 
    $dbh=new PDO('mysql:host=localhost;dbname=DBNAME','USER','PWD'); 
} 
catch(PDOException $e){ 
    echo 'Error connecting to MySQL!: '.$e->getMessage(); 
    exit(); 
} 

$dbh->prepare('SELECT * FROM users WHERE uid= ?'); 
$dbh->execute(array('15400743')); 
$result=$dbh->fetchAll(); 
print_r($result); 
echo "end"; 
?> 

Это в значительной степени скопировано из примера кода, но при выполнении возвращается только «start». Я дважды проверил свой db/user/pw. Что-нибудь еще люди видят неправильно? Благодаря!

+0

Возможно, вы захотите установить '$ dbh-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);'. В противном случае вам нужно проверить возвращаемое значение каждого вызываемого метода. – VolkerK

ответ

6

Правильный путь:

<?php 
error_reporting(E_ALL); 
echo "start"; 

try{ 
    $dbh=new PDO('mysql:host=localhost;dbname=DBNAME','USER','PWD'); 
} 
catch(PDOException $e){ 
    echo 'Error connecting to MySQL!: '.$e->getMessage(); 
    exit(); 
} 

$stmt = $dbh->prepare('SELECT * FROM users WHERE uid= ?'); 
$stmt->execute(array('15400743')); 
$result = $stmt->fetchAll(); 
print_r($result); 
echo "end"; 
?> 

Обратите внимание на assinment из подготовки к переменной $ STMT и использования, что впоследствии.

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