Bunu yapmak için daha iyi bir yolu?

0 Cevap php

Yani bu benim geçerli kod:

function addPage($uniquename, $ordernum, $title, $author, $content, $privilege, $description=NULL, $keywords=NULL){
    if (!$description) $description = NULL;
    if (!$keywords) $keywords = NULL;
    //UPDATE `table` SET `ordernum` = `ordernum` + 1 WHERE `ordernum` >= 2
    $query = "UPDATE ".$this->prefix."page SET ordernum = ordernum+1 WHERE ordernum >= ?";
    if ($stmt = $this->db->prepare($query)){
        $stmt->bind_param("i", $ordernum);
        $stmt->execute();
        if (!arCheck($stmt)) return false;
    } else {
        $this->stmtError("addPage", $stmt->error);
    }

    $query = "INSERT INTO ".$this->prefix."page VALUES (LCASE(?), ?, ?, ?, ?, ?, ?, ?)";
    if ($stmt = $this->db->prepare($query)){
        $stmt->bind_param("sisisssi", $uniquename, $ordernum, $title, $author, $content, $description, $keywords, $privilege);
        $stmt->execute();
        return arCheck($stmt);
    } else {
        $this->stmtError("addPage", $stmt->error);
    }
}

Bu datatable için yeni bir sayfa eklemek için varsayalım. MySQL http://stackoverflow.com/questions/4065767/store-the-order-of-something-in-mysql Phil Hunt nezaket

Ancak ben hazır deyimi performansı iyidir ve güvenlik söylendi, sen aynı şeyi gerçekleştirmek için MultiQuery kullanabilirsiniz biliyorum. Bunun başka bir yolu var mı? Hazırlanmış bir çok sorgu gibi?

Ayrıca, ne İşlemler yapmaya ne dersiniz? Ben ne olduğunu tam olarak emin değilim, ben eğer, INSERT deyim başarısız, diyelim ki, o da UPDATE deyimi geri alır olduğunu varsayıyorum?

NOT: arCheck işlev deyimi kapanacak.

0 Cevap