PHP komut Sorunu Sil

4 Cevap php

Ben de silme komutu ile benzer bir sorun var ..

    function deleteUsers($userID) {

    foreach($userID as $key => $val)
    	{

  $query = "DELETE FROM members WHERE member_id = '$val'";
  $result = mysql_query($query);

    		}

   //$query = "DELETE FROM members WHERE member_id = $userID";
   //$result = mysql_query($query);

   if($result) 
   {
       return 'yes';
    }

    }

onun performans çoklu silmek .... $ userID dizi içerir. Onun Query içinde gitmiyor.

4 Cevap

Kullanırken birden çok kimlikleri oldukça basit eşitlikten daha (1,2,3) formatında değişken kullanabilirsiniz. Eğer birden fazla kimliği varsa da belki değişken $ userids aranmalıdır?

if(count($userID) > 0) {
  $query = 'DELETE FROM members WHERE member_id IN ('. implode(',', $userID) .')';
}

Foreach olmadan:

function deleteUsers($userID) {
    if (count($userID)) {
        $query = "DELETE FROM `members` WHERE `member_id` IN (".implode(",", array_values($userID)).");";
        if (mysql_query($query)) { return true; }
    }
    return false;
}

Bu fonksiyon dizi gibi tek tamsayı anlamak yapacak:

function deleteUsers($u) {
    $condition = is_array($u)
        ? "member_id IN (" . implode(',', $u) . ")"
        : "member_id = " . (int)$u;
    $res = mysql_query("DELETE FROM `members` WHERE $condition");
    return $res ? true : false;
}

Lütfen parametreleri düzgün kaçtı ve cannot be trusted olmadığını unutmayın. SQL kaçan ve enjeksiyon saldırıları önleme konusunda daha fazla bilgi edinmek için okumak hakkında Prepared Statements.

, Internet aşk için, bir SQL sorgusu kendinizi inşa etmeyin. Kullan PDO.