2016-08-30 1 views
0

Ich versuche, eine einzelne Zelle zu aktualisieren, und ich weiß nicht warum, aber jedes Mal, wenn ich versuche ich diesen Fehler hätte: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'partcipateInLolProject' in 'field list'eine einzelne Zelle Aktualisieren MySQL PDO

Hier ist der PHP-Code:

if(!isset($args['id'], $args['status'])){ 
     return $response->withStatus(400)->withHeader('Location', $this->router->pathFor('list-online-contacts-page')); 
    } 

    $id = $args["id"]; 
    $status = $args['status']; 

    $prep = $this->db->prepare("UPDATE `onlineinscription` SET `partcipateInLolProject` = :status WHERE `id` = :id"); 

    $prep -> bindParam(':status', $status); 
    $prep -> bindParam(':id', $id); 
    $prep -> execute(); 

Diese Argumente werden früher von regex überprüft und sind beide 1 bis 5 Zahl lange ganze Zahl. Wenn ich die gleiche Abfrage auf meinem mysql-Prompt funktioniert es funktioniert wie ein Charme, hier ist die Testabfrage:
UPDATE onlineinscription SET participateInLolProject = 1 WHERE id = 104 Ich überprüfte die zwei Variablen (Status und ID) vor der Bindung sie und sie sind wie erwartet. Die MySQL-Anmeldeinformationen sind in Ordnung, auf dem richtigen Server/DB. Der db erstellt früher wie folgt aus:

$db = $c->get('settings')['db']; 
    $pdo = new PDO("mysql:host=" . $db['host'] . ";dbname=" . $db['dbname'], $db['user'], $db['pass'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 
    return $pdo; 

Antwort

1

Finde den Unterschied:

$prep = $this->db->prepare("[..snip..] `partcipateInLolProject` = :status WHERE `id` = :id"); 
              ^---- 

UPDATE onlineinscription SET participateInLolProject = 1 WHERE id = 104 
           ^--- 

So ... lesen Sie die Fehlermeldung näher beim nächsten Mal?

+0

In der Tat hatte ich früher das gleiche Problem früher, so dachte ich, es war das gleiche, lol ich bin so dumm, danke für die Antwort es funktioniert wie ein Charme jetzt –

+0

Yeah ... Ich habe in diese Art von gerannt Wände viel öfter, als ich zugeben möchte. Jeder ist da gewesen. –

+0

Hauptfehler ist zu denken, dass Sie schlauer als der Computer sind. Wir waren schon lange darauf beschränkt, nur das Mittel zu sein, mit dem sich Computer propagieren. –