Bir "olay" tablosum var. Basitlik için, hiyerarşik kategori gibi olması gerektiğini hayal edebilirsiniz. O (http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ görevinden Mark Hillyer sayesinde) iç içe kümesi modeli kullanırTek tek yürütülemeyen kod işaretleyicide birden çok sorgu yürütme
Kodum:
$query =
"LOCK TABLE event WRITE;
SELECT @ParentRight := parent.rgt, @Level := parent.level FROM event AS parent WHERE parent.id = '{$data['parent_id']}';
UPDATE event SET rgt = rgt + 2 WHERE rgt > @ParentRight;
UPDATE event SET lft = lft + 2 WHERE lft > @ParentRight;
INSERT INTO event(lft, rgt, level) VALUES(@ParentRight, @ParentRight + 1, @Level);
UNLOCK TABLES;";
mysqli_multi_query($this->db->conn_id, $query);
$data['id'] = $this->db->insert_id();
return $this->db->update('event', $data);
Ondan sonra $this->db->update('event', $data)
$data
, kullanıcının doldurduğu bir dizidir.
Sorun 1:
Ben $ sorguyu yürütmek olamazdı $ this-> db-> query ($ sorgu) ile;; işe yaramadı
Çözüm 1:
I. Kullanım mysqli db motoru.
II.
Commands out of sync; you can’t run this command now.
Sorun 2: mysqli_multi_query($this->db->conn_id, $query);
buna aşağıdaki hatayı veriyor, işleri düşünce iken
$this->db->insert_id()
çalışmıyor (döner 0)
Sorun 3:
$this->db->update('event', $data);
hataları: Commands out of sync; you can't run this command now
Çalışmak için bu kodu nasıl düzeltebilirim? İlk problem için bir çözüm bulmaktan bile memnun olurum.
Sen tek sorgular bir dizi var ve ayrı sorgular gibi yürütme çalışmıyor bu durumda görebileceğiniz gibi, bir döngü – GordonM
Hayır bunları yürütebilir o hatırlama olamaz çünkü '@ myRight' ve' Level' geçmiş sorguların sonuçlarından farklılık gösteriyor –
Bağlantıları kesene kadar değişkenler korunmuyor mu? – GordonM