Mysql dinamik sql insert sorgusu nasıl oluşturulur

2 Cevap php

Ben dinamik kullanıcı girişi dayalı işaretçilerine üreten ve MySQL veritabanı içine saklayarak yaşıyorum bir uygulama oluşturma.

$sql = "INSERT INTO tblpin ('pinId', 'ownerId', 'usedby', 'status') 
    VALUES
        for($i=0;$i<$npin;$i++)
        {
            ('$pin[$i]','$ownerid', 'Free', '1');
        }
    ;";

how can I do that?

2 Cevap

Bu deneyin:

$sql = "INSERT INTO tblpin ('pinId', 'ownerId', 'usedby', 'status') VALUES ";
for($i=0; $i<sizeof($pin); $i++) {
    if ($i>0)
        $sql .= ", ";
    $sql .= "('$pin[$i]', '$ownerid', 'Free', '1')";
}

Tabii ki onlar could mess with the SQL query herhangi bir karakter içeren durumda $ piminin değerlerini kaçmak gerekir.

Gibi bir şey

$sql = sprintf( "INSERT INTO `tblpin` (`pinId`, `ownerId`, `usedby`, `status`) VALUES ('%s', '%s', '%s', '%s')",
    generatePIN($pin),
    mysql_real_escape_string($ownerId),
    mysql_real_escape_string($usedBy),
    mysql_real_escape_string( $status) );

veya (Conspicuous derleyicisi için düzenlenmiş)

$pins = generatePINS($user); // ? however they're generated
foreach( $pins as $pin) {
    $sql = sprintf( "INSERT INTO `tblpin` (`pinId`, `ownerId`, `usedby`, `status`) VALUES ('%s', '%s', '%s', '%s')",
        $pin,
        mysql_real_escape_string($ownerId),
        mysql_real_escape_string($usedBy),
        mysql_real_escape_string( $status) );
        $result = mysql_query($sql);
}

generatePIN Eğer kapalı dayandırarak konum halt olursa olsun dayalı iğne yapmak için fonksiyonudur. veya generatePINS Bunlardan bir dizi döndürür