ich den folgenden Code zu verwenden, versuchen:Lösch-Abfrage funktioniert nicht über php gU
$Q = DBCon::getCon()->prepare('SELECT * FROM `'.$language['data_table_name'].'` WHERE `id`=:id');
$Q->bindValue(':id', $recordId, PDO::PARAM_INT);
$Q->execute();
var_dump($Q);
var_dump($recordId);
var_dump($Q->fetch(PDO::FETCH_ASSOC));
$Q = DBCon::getCon()->prepare('DELETE FROM `'.$language['data_table_name'].'` WHERE `id`=:id');
$Q->bindValue(':id', $recordId, PDO::PARAM_INT);
$Q->execute();
var_dump($Q);
var_dump($recordId);
, die folgenden Daten via var_dump
erzeugt:
object(PDOStatement)[6]
public 'queryString' => string 'SELECT * FROM `project_nl` WHERE `id`=:id' (length=41)
string '5' (length=1)
array (size=4)
'id' => int 5
'name' => string 'test' (length=4)
'description' => string 'test' (length=4)
'big_image' => string 'test' (length=4)
object(PDOStatement)[6]
public 'queryString' => string 'DELETE FROM `project_nl` WHERE `id`=:id' (length=39)
string '5' (length=1)
Welche soll, soweit ich wissen, löschen Sie den Datensatz, in dem id
5
aus der folgenden Tabelle entspricht:
|Table name: project_nl |
---------------------------------------
| id | name | description | big_image |
---------------------------------------
| 1 | test | test | test |
| 5 | test | test | test |
Das Codeelement löscht jedoch tatsächlich nichts. Es wirft auch keine Fehler/Ausnahmen auf.
Wenn ich jedoch die Abfrage von der var_dump
kopieren und in phpMyAdmin einfügen, wird die Zeile gelöscht.
Auch das Skript ist voll von insert
, update
und select
Abfragen, die alle gut funktionieren. Es ist nur DELETE
, die überhaupt nichts tun.
Warum binden Sie es explizit als PARAM_STR und nicht als _INT? Ist es keine numerische Spalte? Erhalten Sie Ergebnisse, wenn Sie DELETE für SELECT in diesem Codeabschnitt wechseln? – mario
@mario Ich habe es in 'PARAM_INT' geändert und eine' select' Abfrage mit der Ausgabe hinzugefügt. –
Vielleicht eine hängende Transaktion? Andernfalls versuchen Sie anstelle einer vorbereiteten Anweisung eine einfache Abfrage zu verwenden - zum Testen. – mario