无法使用PDO

时间:2017-04-07 09:08:05

标签: php mysql pdo

我想从外部数据库中选择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;

它显示&#34;连接到数据库&#34;和&#34; echo $ sql&#34;部分,但不显示任何信息。

1 个答案:

答案 0 :(得分:2)

问题的第一部分已经解决了。

现在这个

  

我现在要打印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";
    }
?>