sql update codeigniter
Ich bin mit codeIgniter..
Ich möchte zum aktualisieren einer Tabelle Spalte is_close
wenn id=$ticket_id
meiner table= tbl_tickets.
Ich bin, dies zu tun :-
$data=array(
'is_close'=>1
);
$this->db->where('id',$title_id);
$this->db->update('tbl_tickets',$data);
und ich haben dies auch getan :-
$sql = "UPDATE tbl_tickets SET is_close={1} WHERE id='$title_id'";
$this->db->query($sql);
beide nicht arbeiten,also, meine Tabelle wird nicht aktualisiert der Wert auf " 1 " und auch kein Fehler angezeigt wird, ist in den broswer. 🙁
Bearbeitet: Enthalten mein Modell Teil :
function setClosePost($title_id){
$sql = "UPDATE tbl_tickets SET is_close=0 WHERE id='$title_id'";
$this->db->query($sql);
// $data=array(
// 'is_close'=>1
// );
// $this->db->where('id',$title_id);
// $this->db->update('tbl_tickets',$data);
}
Mein controller :-
function closePost(){
$this->load->model('helpdesk_model');
$this->helpdesk_model->setClosePost($this->input->post('title_id'));
}
- Haben Sie versucht, die Abfrage ausführt, die außerhalb des Kontexts von CodeIgniter? Sind Sie sicher, dass
$title_id
enthält den Wert, den Sie erwarten? - Yup, ich bin immer $title_id als parameter an mein Modell-Funktion.
- Verwenden
echo $this->db->last_query();
drucken Sie die Abfrage. Dann versuchen Sie es auf die Datenbank manuell, z.B. über phpMyAdmin. - verwenden Sie diese { return $this->db->update('tbl_tickets',$Daten); }
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie zunächst
$title_id
vor der übergabe:Dann versuchen Sie es tun "wählen Sie eine Zeile mit dieser id" vor Aktualisierung und nach.
Dann geben Sie sich die Struktur einer Tabelle.
string '' (length=0)
Versuchen Sie einfach, wie diese
versuchen Sie einfach, wie diese
zunächst verwenden Sie eine get-Methode, um zu überprüfen, ob
ticket_id
ist vorhanden oder nicht.andere Sache ist, verwenden Sie immer die Rückkehr in Ihre Funktionen in die Modelle, so dass Sie überprüfen können, die Ihnen von
if(function_name){...}else{...}
dann, wenn Sie Ihre get-Methode zurückgegebenen Daten korrekt versuchen
Modell-Methode
dann prüfen, dass in Ihrem controller
Zu behandeln diese Art von Fehler, wenn ich meine reflektion ist nicht passiert in der Datenbank, dann verwenden Sie folgende Schritte zur Behebung dieser Art von Fehler.
1) verwenden Sie $this->db->last_query() Funktion drucken-Abfrage, mit diesem können wir sicherstellen, dass unsere Variablen haben den richtigen Wert (sollte nicht null oder undefined (nicht definiert), mit diesem können wir sicherstellen, dass auch SQL-Abfrage gültig ist oder nicht.
2) Wenn die SQL-Abfrage gültig ist, öffnen Sie phpmyadmin & Feuer dieselbe Abfrage in phpmyadmin, es gibt einen Fehler zurück, wenn die Abfrage Spalten oder Tabellennamen sind ungültig.
Nutzen Sie diesen Weg, Ihre beste Weg, um cross-check unsere SQL-Abfragen Probleme.
Ich hoffe, es wird funktionieren.
Dank
Sind Sie versuchen, zu aktualisieren integer(INT) Wert Typ, nur cross-check mit Ihrer Spalte Datentyp, wenn das ist, varchar, dann müssen Sie legen Wert in einem Einzel-oder doppelte Anführungszeichen.
Wie diese
$data=array('is_close'=> '1');