SQLSTATE[HY000] [2002] Fehler

Ich bin versucht derzeit, einfügen von Daten aus einer CSV-Datei in meine mysql-Datenbank. Das Formular und alle Funktionen richtig funktionieren, weil ich habe getestet, um sicherzustellen, dass Es beim Lesen der Datei, etc. Wenn ich mich vorbereiten PDO einfügen in mysql bekomme ich keine Fehler in Chrome. Wenn ich jetzt lassen Sie es execute() das ist, wenn ich server-Fehler in Chrome(alle browser) und ich sah in meinem error-log-Datei, die zeigte, wo die Funktion ist zu sagen:

SQLSTATE[HY000] [2002] 
   No connection could be made because the target machine actively refused it.

Werde ich einfügen mein code auf die Funktion, die ich gemacht habe.

Code:

function returnBack(){

    header("Location:csvuploader/csvuploaderform.php?seterror=1");
    exit;

}

if (isset($_POST['submit'])){

    /*******************************CHECK TO MAKE SURE FORM IS PROPERLY FILLED AND GET NAME OF COLUMNS IN CSV FILE *********************************************************/
    if (empty($_FILES['file'] ) )
    {
        returnBack();

    } 
    if (empty($_POST['firstname'])){
        echo "firstname is empty";

        returnBack();
    }
    if (empty($_POST['lastname'])){
        echo "lastname is empty";

        returnBack();
    }if (empty($_POST['email'])){
        echo "email is empty";

        returnBack();
    }
    if (empty($_POST['phone'])){

        returnBack();
    }

    $file = $_FILES['file']['tmp_name'];    

    $handle = fopen($file , "r");

    $fileop = fgetcsv($handle,1000,",");

    $fileop=array_map("strtoupper",array_map("trim",$fileop));

    $firstname_index = array_search(strtoupper($_POST["firstname"]),$fileop);
    if ($firstname_index===false){
        returnBack();
    }
    $lastname_index = array_search(strtoupper($_POST['lastname']),$fileop);
    if ($lastname_index===false){

        returnBack();
    }
    $email_index = array_search(strtoupper($_POST['email']),$fileop);
    if ($email_index===false){

        returnBack();
    }
    $phone_index = array_search(strtoupper($_POST['phone']),$fileop);
    if ($phone_index===false){

        returnBack();
    }
    /***********************ASSIGN COLUMN VALUES TO ACCORDING VARIABLES AND INSERT THEM INTO CSV TABLE IN DB *************************************/
    try {  
  # MySQL with PDO_MYSQL  
  $DBH = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);  
  $DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

    }  
    catch(PDOException $e) { 
        echo "I'm sorry, I'm afraid I can't do that.";  
        file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);   
    }
    /*$fileop = fgetcsv($handle,1000,",")*/
    while (($fileop=fgetcsv($handle)) !== false)
    {

        $fileop=array_map("trim",$fileop);

        $firstname = $fileop[$firstname_index];

        $lastname = $fileop[$lastname_index];

        $email = $fileop[$email_index];

        $phone = $fileop[$phone_index];


        $insertdata = $DBH->prepare("INSERT INTO csvdata (firstname, lastname, email, phone) VALUES ('$firstname','$lastname','$email','$phone')");
        //var_dump($insertdata);

        $insertdata->execute();


    }

}


$DBH = null;

AKTUALISIERT ------------------------------------- Heres einige Infos

PHP-info - PHP Version 5.3.10, System Windows NT W03 6.0 build 6002 (Windows Server 2008 Standard Edition Service Pack 2) i586

AKTUALISIERT ------------------------------------

Ich bin in der Lage, eine Verbindung zum MySQL-server und durchsuchen - einfügen von Daten aus anderen Funktionen, die ich gemacht habe, und Sie funktionieren alle perfekt. Es ist nur diese eine geben, wird mir ein Fehler.

AKTUALISIERT -------------------------------------------------------------------------

Figured it out Jungs, vielen Dank für Ihre Hilfe. Ich habe tatsächlich benötigt, um füllen Sie alle Spalten mit Daten für Sie zu arbeiten. Zum Beispiel hatte ich (firstname,lastname,email,Telefon) habe ich benötigt, um füllen Sie username,Passwort,status Teil. Vielen Dank für Eure Hilfe Jungs! Hoffe dies hilft wer fällt in das gleiche Loch!

  • vielleicht ist Ihr Benutzername und oder Passwort falsch sind
  • Nein, habe ich überprüft ;/.
  • Nein, "Maschine verweigerte es" bedeutet ein firewall-Problem oder server nicht auf TCP.
  • wissen Sie, wie Sie dieses Problem beheben?
  • Sie brauchen, um den MySQL-server 1) ausgeführt wird, und 2) für verbindungen Empfangsbereit egal von welcher Maschine aus, die Sie verwenden, als client.
  • Es funktioniert völlig in Ordnung, wenn ich eine Verbindung mit ihm herstellen und einfügen von Daten aus anderen Funktionen - Sie funktionieren alle perfekt. Ich bin mit MySQL-workbench.
  • wenn du meinst, von anderen Funktionen redest du innerhalb von PHP oder redest du mit verschiedenen mysql-clients wie MySQL Workbench?
  • Sorry, Php-code, der verwendet die gleiche MySQL-db
  • Zusätzlich wirst du über prepared statements alle falsch! $insertdata = $DBH->prepare("INSERT INTO csvdata (firstname, lastname, email, phone) VALUES (?,?,?,?)"); $insertdata->execute(array($firstname,$lastname,$email,$phone));
  • zum Beispiel habe ich eine members-Tabelle, wo Sie es überprüfen, um zu sehen, wenn sich ein Benutzer im system registriert. Ich bin in der Lage, den Zugriff auf die Daten und legen Sie (wenn sich jemand registriert).
  • könnten Sie mir mehr darüber erzählen?
  • nichts. Hat nicht funktioniert.
  • nicht meine, die war eigentlich Los, um das Problem zu lösen Sie gefragt... es war mehr Allgemeine Informationen 🙂
  • Vielen Dank also, irgendwelche Ideen?
  • Erstellen Sie ein neues PDO-Objekt mehrere Male in das gleiche Skript? In der Regel, dass die einmal pro Skript vor der Ausführung der Funktion. Wenn Sie versuchen, öffnen mehrere verbindungen im gleichen script, der server ist möglicherweise zu leugnen, es aus irgendeinem Grund.
  • Michael Nein nicht im selben Skript überhaupt nicht.
  • Dieses Skript ist komplett getrennt von allem anderen.

InformationsquelleAutor David Biga | 2012-08-17
Schreibe einen Kommentar