Frage

Ich lerne PHP gU; meine Umgebung ist. NetBeans 6.5.1, XAMPP 1.7.0 und ich habe diesen Code, die es zu verbinden scheint,

  • Wenn ich Dbname zu einem nicht existenten einem ändern, es wirft Ausnahme „DB nicht vorhanden ist“
  • Wenn ich Benutzer zu ändern, es wirft "Login incorrect")

aber wenn ich rufe $ CN-> query, es stellt sich:

  

Eine nicht behandelte Win32 Ausnahme in apache.exe aufgetreten

Was mache ich falsch?

$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();
}
War es hilfreich?

Lösung

Das ist ein Fehler in XAMPP 1.7.0. Aktualisieren Sie auf 1.7.1 oder folgen diese Anweisungen Ihre 1.7.0 Installation zu reparieren.

Andere Tipps

Ist $ cn gültig? Überprüfen Sie den Rückgabewert. Was Sie bisher beschrieben habe, überzeugt mich nicht, dass Sie verbunden sind.

Wenn Sie nicht bereits haben, würde ich Ihre Umgebung sicher richtig funktioniert.

  1. Überprüfen der Benutzer arbeitet mit MySQL selbst (mit so etwas wie mysqlquery), um sicherzustellen.
  2. Überprüfen Sie sicher, PHP machen können MySQL verbinden. Ich installiere phpMyAdmin auf alle neuen Setups (auch wenn ich es nicht verlassen, an Ort und Stelle), um sicherzustellen, dass er eine gute Arbeitsverbindung habe.
  3. Haben durch Ausnahmen auf Fehler PDO (siehe http: // us2 .php.net / manual / en / pdo.error-handling.php ), um zu sehen, wo die Fehler sofort auftreten.

Meine Vermutung ist, dass Sie nicht immer zu MySQL verbinden, was die Unfähigkeit erklären würde, um die Datenbank zu ändern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top