2013-05-07 3 views
-3

테이블 'users'및 'name'(VARCHAR (20)) 및 'id'(INTEGER) 테이블을 사용하여 'phpopdracht5'데이터베이스에서 데이터를 검색하려고합니다. 작동 안함. 내 코드에 이상이있을 것입니다.phpMyAdmin 데이터베이스에서 데이터를 검색하는 것이 작동하지 않습니다.

<?php 
define("DB_HOST", "localhost"); 
define("DB_USERNAME", "root"); 
define("DB_PASSWORD", ""); 
define("DB_NAME", "phpopdracht5"); 

try 
{ 
    $db_conn = new PDO('mysql:host='.DB_HOST.';dbname'.DB_NAME,DB_USERNAME,DB_PASSWORD); 
} 
catch(PDOException $e) 
{ 
print "Error!:".$e->getMessage()."\n"; 
die(); 
} 

$sth = $db_conn->prepare('SELECT * FROM users'); 
$sth->bindParam(':name', $name, PDO::PARAM_STR, 20); 
$sth->bindParam(':id', $id, PDO::PARAM_INT); 
$sth->execute(); 

while ($row = $sth->fetch(PDO::FETCH_BOTH)) { 
echo $row[0]; 
} 
?> 
+2

누락 된 것 같습니다; 그러나 그들을 묶을 자리 표시자가 없습니다. 'SELECT * FROM users WHERE name =? '을 시도해보십시오. 그리고 id =?' – andrewsi

+0

나는 그것들을 오히려 결과로 묶고 싶다고 말하고 싶습니다. –

+1

참고 데이터베이스는 phpmyadmin이 아니며, mysql 데이터베이스입니다. phpmyadmin은 mysql 데이터베이스의 데이터를보기위한 도구 일뿐입니다. – Pitchinnate

답변

0

같습니다 : $ db_conn = new PDO ('mysql : host ='. DB_HOST. '; dbname'.DB_NAME, DB_USERNAME, DB_PASSWORD);

$ db_conn = new PDO ('mysql : host = localhost; dbname = testdatabase', 'test', 'testpass'); 링크 : DEBUG PDO Connection & PHP Output

는 그래서 "DBNAME은 ="당신은 당신의 준비된 문장에 paramters을 추가하는

+1

와우 스틱스, 그건 정말 어리석은 잘못이었습니다. 내 나쁜 :/ – breght

+0

그것은 우리 최고의 일이 멋지다. 해피 코딩 !! – greendave11

+1

그런 일이 일어나지 않게하려면 오류보고가 필요합니다. –

1

쿼리에 존재하지 않는 매개 변수를 바인딩합니다. 귀하의 질의가되어야합니다

SELECT * FROM users WHERE name = :name AND id = :id 

모든 사용자를 원하는 그렇지 않은 경우 :

$sth = $db_conn->prepare('SELECT id, name FROM users'); 
$sth->execute(); 

while ($row = $sth->fetch(PDO::FETCH_BOTH)) { 
echo $row['id'] . ':' . $row['name']; 
} 
1

당신이 그들을 얻을 매개 변수를 바인딩 할 필요가 없습니다. 여기에 설명 된대로 단지 또한

$sth = $db_conn->prepare('SELECT * FROM users'); 
$sth->execute(); 

, 당신은 PHP 및 PDO 오류보고를 설정해야합니다 : 이것은 당신의 PDO 명령이

입니다 : 당신이이 서명 또는 두 개의 동일 누락처럼 PDO query fails but I can't see any errors. How to get an error message from PDO?

관련 문제