2017-05-10 7 views
0

Ich habe versucht, meinen Tisch zu füllen SQL von PHP aber das Ergebnis ist immer 0. Mein Tisch nehmen Sie nicht das Update von meinem Schlepptau Konto files xslxFehler zu füllen Tabelle von PHP

Mein Code ist folgende:

public function save(\...\Parse\Article $article, \Floose\\LRU $lru){ 
    $IdLRU=$lru->getId(); 
    $LRU=$lru->getLRU(); 
    $designation=$article->getDesigniation(); 
    $articleid= $article->getId(); 
    if ($LRU == "Unspecified") { 
     $IdLRU = 40; 
    } 

    else{ 
       if ($LRU != 'new'){ 
        $check= $this->_db->query("SELECT `ID_LRU` FROM `lru` WHERE `LRU` ='".$LRU."'"); 
        return true; 
       } 

       else if ($check->rowCount() == 0) { 
        $this->_db->query("INSERT INTO `lru` (`ID_LRU`, `LRU`) VALUES ('".$IdLRU."', '".$LRU."');"); 
        $requete2 =$this->_db->query("SELECT `ID_LRU` FROM `lru` WHERE `LRU` ='".$LRU."'"); 
        while($data = $requete2->fetch()) 
        { 
        $IdLRU=$data['ID_LRU']; 
        } 

       } 
       else{ 
        while($data = $check->fetch()) 
        { 
        $IdLRU=$data['ID_LRU']; 
        } 
       } 
    } 
The structure of my table is: 

(ID_LRU, LRU) --> (int auto_increment, varchar) 

Können Sie mir sagen, das Problem ist in meiner Anfrage?

+0

Es einzufügen scheint verschiedene Probleme mit Ihrem Code zu sein - wo '$ check' dort eingestellt ist a */am Ende der Linie. Das 'if ($ check-> rowCount() == 0) {' scheint kein Close} an der richtigen Stelle zu haben. –

+0

Danke, ich habe es geändert. Ich habe es bearbeitet, es ist oben. Aber er funktioniert nicht, aber ich änderte die NULL um einen Wert von getId – Nazly

+0

Wenn der obige Code Ihre Änderungen widerspiegelt, wird das Bit, das '$ check ...' ausführt, nicht vor 'else if ($ check-> rowCount() == 0) {' –

Antwort

0

Pro ID_LRU ist AUTO_INCREMENT Spalte, bedeutet wahrscheinlich, es ist ein Primärschlüssel Spalte. Damit Ihr unter Abfrage falsch ist und durch Fehler sollte, da Sie versuchen, null in einer Schlüsselspalte

_db->query("INSERT INTO `lru` (`ID_LRU`, `LRU`) VALUES (NULL, 
+0

Wenn Sie null in ein Autoinkrementfeld setzen, wird nur der nächste Wert zugewiesen. –

+0

@NigelRen, Antwort zeigt nicht, dass ... lesen Sie es sorgfältig .. Punkt ist Primärschlüssel, wenn überhaupt – Rahul

+0

Ja ID_LRU ist Primärschlüssel in meiner Tabelle, nur ich sollte es beeinflussen den Wert 40, wenn die Contition "unspezifiziert" – Nazly