2016-05-09 4 views
1

ich wirklich brauchen, um die Flucht der letzten Komma zu verhindern SQL-Fehler mit dem INSERTUnter dem letzten Komma von INSERT in While-Schleife

Sollte ich ein einfaches implodieren verwenden, vielleicht ein Trimm-off? Aber wie? Ich möchte nicht, diese Werte Echo, legen Sie einfach sie in meine Datenbank das letzte Komma Flucht

if ($handle = fopen($arquivo['tmp_name'], "r")) { 

     $pdo = $this->connector->getConnection(); 

     $firstLine = true; 

     $string = "INSERT INTO vestibular (rg, nome, curso, resultado, colocacaogeral, colocacaocurso, unidade) VALUES "; 

     while ($row = fgetcsv($handle , 0 , ";")) { 

      if ($firstLine) { 
       $firstLine = false; 
       continue; 
      } 

      $string .= "(
       '" . mb_convert_encoding($row[0], 'UTF-8', 'ISO-8859-1') . "', 
       '" . mb_convert_encoding($row[1], 'UTF-8', 'ISO-8859-1') . "', 
       '" . mb_convert_encoding($row[2], 'UTF-8', 'ISO-8859-1') . "', 
       '" . mb_convert_encoding($row[3], 'UTF-8', 'ISO-8859-1') . "', 
       '" . mb_convert_encoding($row[4], 'UTF-8', 'ISO-8859-1') . "', 
       '" . mb_convert_encoding($row[5], 'UTF-8', 'ISO-8859-1') . "', 
       '" . $_POST['unidadeVestibular'] . "' 
       ),"; 

     } 

     $statement = $pdo->prepare($string); 
     $statement->execute(); 

     return $statement; 

     fclose($handle); 

    } 


} 

Könnte mir jemand bitte helfen? = D

EDIT 1:

zu klarstellen: Ich brauche ein Komma in $_POST['unidadeVestibular'] zu verhindern, dass die Schleife in Gang zu halten und ein, wie es

+0

Blick auf 'rtrim()' – Albzi

+1

Ehrlich gesagt, der „einfachste“ Weg, dies zu tun wäre, um jede Ihrer Zeilen zu einem Array hinzufügen und dann das Array implodieren. (für einen gegebenen Wert von easy.) –

+0

Sie könnten auch etwas wie $ $ string = substr ($ string, 0, strlen ($ string) - 1); ' –

Antwort

0

Eine Alternative zu rtrim zum Entfernen des letzten Zeichens einer Zeichenkette ist substr. Der folgende Abschnitt extrahiert einen Teil von $string (alles außer dem letzten Zeichen) und wird $string zugewiesen.

$string = substr($string, 0, -1);

2

Verwenden rtrim() -Funktion tun sollte alle Zeichen aus dem abzustreifen Ende eines Strings

rtrim($string, ",") 
1

Mögliche Lösung

$statement = $pdo->prepare(rtrim($string, ",")); 

$statement->execute(); 
Verwandte Themen