質問

php pdoを学習しています。私の環境は、NetBeans 6.5.1、XAMPP 1.7.0で、このコードがあり、接続しているようです。

  • dbnameを存在しないものに変更すると、例外" db not exists"が発生します
  • ユーザーを変更すると、「ログインが正しくありません」というメッセージが表示されます)

しかし、$ cn-> queryを呼び出すと、以下が発生します:

  

apache.exeで未処理のWin32例外が発生しました

何が間違っているのですか?

$hostname = 'localhost';
$username = 'crb';
$password = 'letmein';
try {
    $cn = new PDO("mysql:host=$hostname;dbname=bitacora", $username, $password);
    echo 'Connected to database<br />';
    $sql = "SELECT * FROM usuario WHERE login = '".$login."' AND clave = '".$clave."'";
    // Error here
    foreach ($cn->query($sql) as $row) {
        print $row['login'] .' - '. $row['clave'] . '<br />';
    }
} catch (PDOException $e) {
    echo $e->getMessage();
} catch (Exception $e) {
    echo $e->getMessage();
}
役に立ちましたか?

解決

これは、XAMPP 1.7.0のバグです。 1.7.1 にアップグレードするか、これらの手順で、1.7.0インストールを修正します。

他のヒント

$ cnは有効ですか?戻り値を確認してください。これまで説明してきたことは、あなたが接続されていることを私に納得させません。

まだお持ちでない場合は、環境が正しく機能していることを確認します。

  1. ユーザーが(mysqlqueryなどを使用して)MySQL自体を使用していることを確認します。
  2. phpがMySQLに接続できることを確認してください。すべての新しいセットアップにphpmyadminをインストールし(適切な場所に残さない場合でも)、接続が正常に機能することを確認します。
  3. エラーの例外をPDOで処理する( http:// us2を参照.php.net / manual / en / pdo.error-handling.php )で、エラーがどこで発生しているかをすぐに確認できます。

MySQLに接続することはないと思いますが、これはデータベースを変更できないことを説明します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top