2

PDOを使い始め、PDOを使用してMySQLに正常に接続しました。ただし、DBからものを選択しようとしても、何も起こりません。何もエコーされません。(そのテーブルにレコードがあり、列のユーザー名が存在する場合でも)PHPログにエラーはありません。

私はMAMPを使用していますが、すべてのPDOコンポーネントがphpinfo()で機能しているようです(最初にdbに接続できたため)

何がうまくいかなかったのか教えてください。どうもありがとう

    <?php
    try 
    {
        $connection = new PDO('mysql:host=localhost;dbname:my_db','my_username',
                              'xxxxxxx');   


            $stmt=$connection->prepare("SELECT * FROM users");
            $stmt->execute();

            while ($row=$stmt->fetch(PDO::FETCH_OBJ)){

                echo $row->username;
            }

    }

    catch(Exception $e)
    {
        echo "There was an error connecting to the database";
    }

    ?>
4

4 に答える 4

9

PDOに例外をスローするように指示する必要があります。

$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

以下のコメントに続いて、DSNが正しくないことは明らかです。そのはず:

$connection = new PDO('mysql:host=localhost;dbname=my_db','my_username','xxxxxxx');

構文は(元々持っていた)ではないことに注意してdbname=くださいdbname:

于 2012-05-17T17:40:05.967 に答える
3

まず、PDO接続セグメントからクエリを取得します...

<?php
try 
{
    $connection = new PDO('mysql:host=localhost;dbname:my_db','my_username',
                          'xxxxxxx');
}

catch(Exception $e)
{
    echo "There was an error connecting to the database";
}
?>

じゃやれ。

<?php
$SQL = 'SELECT * FROM users';
foreach($connection->query($SQL) as $row){
    print $row['username'] . "\n".'<br />';
}
?>
于 2012-05-17T17:45:53.033 に答える
0

PHPに聞いてみませんか?

catch(Exception $e)
{
    die($e);
}
于 2012-05-17T17:39:24.267 に答える
0

そのテーブルにデータがないか、エラーがあるようです。

次の後にこのコードを追加してみてください$stmt->execute();

$arr = $sth->errorInfo();
print_r($arr);
于 2012-05-17T17:44:21.833 に答える