2016-09-09 4 views
0

프로그래밍에 대한 첫 경험이고이 문제를 해결할 수 없습니다. 튜토리얼에서 코드를 발견했지만 나에게 도움이되지 않습니다.PHP 쿼리가 작동하지 않습니다.

목록에는 데이터베이스의 데이터가 표시되지 않지만 테이블에는 모든 데이터가 표시됩니다.

Image

내 코드 : 그냥 레코드에 대한

<?php 
$servername = "111"; 
$username = "1111"; 
$password = "111"; 
$dbname = "1111"; 

try { 
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $conn->prepare("SELECT Region_ID, Region_Name FROM Regions"); 
    $stmt->execute(); 

    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    echo "<select name='Choose Region'>"; 
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
    echo "<option value='" . $v['Region_Namee'] ."'>" . $v['Region_Name'] ."</option>"; 

} 
} 

catch(PDOException $e) { 
    echo "Error: " . $e->getMessage(); 
} 
$conn = null; 
echo "</select>"; 
?> 
+0

'캐치 (PDOException의 $ 전자) { 에코 "오류 : ". $ e-> getMessage(); }'오류가 반환됩니까? – Santi

+3

그건 바보 같은 튜토리얼입니다. foreach 행을'foreach ($ stmt as $ v)'로 변경하십시오. –

+0

페이지의 소스를보십시오. 어쩌면 그 가치가 당신이 생각하는 것과 다를 수도 있습니다. 그리고 왜 그것을 가져 오지 않을 때'Region_Namee'을 사용하고 있습니까? – aynber

답변

0

. PDO는 코드를 획기적으로 단축시킬 수있는 훌륭한 확장입니다. 그것은 당신을 위해 많은 일을 할 수 있습니다. 그러나 많은 자습서는 PDO에 이미 존재하는 많은 바퀴를 재발 명하도록 가르쳐 줄 것입니다. 모든 쓰레기를 밖으로 가지고가는 경우에 당신은 PDO 실제로 당신에게 가능한 가장 깨끗한 코드를 제공하는 것을 볼 수 있습니다 :

<?php 
$servername = "111"; 
$username = "1111"; 
$password = "111"; 
$dbname = "1111"; 

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 
// everything above this line should go into separate file 
// and just gets included here 

$stmt = $conn->query("SELECT Region_ID, Region_Name FROM Regions"); 
echo "<select name='Choose Region'>"; 
foreach ($stmt as $v) { 
    echo "<option value='" . $v['Region_ID'] ."'>" . $v['Region_Name'] ."</option>"; 
} 
echo "</select>"; 

나머지는 PDO에 의해 처리됩니다

관련 문제