외부 데이터베이스에서 PDO (항상 mysqli 사용)로 데이터를 선택하고 싶습니다. 연결되고 쿼리는 mysql을 사용하여 서버에서 직접 작동합니다. PHP에서는 그렇지 않습니다. 내 코드는 다음과 같습니다.
<?php
$hostname = 'localhost';
$username = 'user';
$password = 'pass';
function testdb_connect ($hostname, $username, $password){
$dbh = new PDO("mysql:host=$hostname;dbname=database", $username, $password);
return $dbh;
}
try {
$dbh = testdb_connect ($hostname, $username, $password);
echo 'Connected to database';
} catch(PDOException $e) {
echo $e->getMessage();
}
$sql= "select * from table limit 10;";
echo "<br/>";
echo $sql;
$stmt = $pdo->prepare($sql);
$stmt->execute();
$row = $stmt->fetchObject();
echo $row->id;
"데이터베이스에 연결됨"과 "echo $ sql"부분이 표시되지만 정보는 표시되지 않습니다.
질문의 첫 부분이 해결되었습니다.
이제 이거
이제 첫 번째 행 대신 10 개의 행을 인쇄하고 싶습니다. 어떻게하나요?
이를 수행 할 수있는 방법은 여러 가지가 있지만 결과를 반복하고 원하는 행을 표시해야합니다.
옵션 1
$sql = $dbh->query("SELECT * from table limit 10")->fetchall(PDO::FETCH_ASSOC);
foreach($sql as $row){
// print_r($row); // see them all
echo $row['desiredRow']; //print them one by one
}
옵션 2
$sql = $dbh->query("SELECT * from table limit 10");
while($row=$sql->fetch()){
// print_r($row);
echo $row['desiredRow'];
}
옵션 3
<?php
$sql = "SELECT * from table limit 10";
$stmt = $dbh->prepare($sql);
$results = $stmt->fetchall(PDO::FETCH_ASSOC);
if(count($results) > 0){//check results
foreach($results as $row){
print_r($row);
}
}else{
echo "no results found";
}
?>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다