2011-03-10 25 views
14

Temelde yalnızca tablomda birden çok değeri güncellemeye çalışıyorum. Bu konuda gitmenin en iyi yolu ne olurdu? Geçerli kod İşte: Ben dahil etmek istediğinizPHP: Tek bir sorguda birden çok MySQL alanını güncelleştirin

$postsPerPage = $_POST['postsPerPage']; 
$style = $_POST['style']; 

mysql_connect ("localhost", "user", "pass") or die ('Error: ' . mysql_error()); 
mysql_select_db ("db"); 

mysql_query("UPDATE settings SET postsPerPage = $postsPerPage WHERE id = '1'") or die(mysql_error()); 

diğer güncelleme:

mysql_query("UPDATE settings SET style = $style WHERE id = '1'") or die(mysql_error()); 

teşekkürler! Ancak

UPDATE settings SET postsPerPage = $postsPerPage, style= $style WHERE id = '1' 

, kendi girişleri sterilize değiliz ??:

cevap

44

virgül ayrımları ile birden çok sütun ekleyin Bu, herhangi bir hacker saldırısının veritabanınızı yok edeceği anlamına gelir. Şu soruya bakın: What's the best method for sanitizing user input with PHP?

Ayrıca, stil bir sayı veya bir dizedir? Bir ip atıyorum, bu yüzden alıntılanması gerekecek. PDO kullanıyorsanız

UPDATE settings SET postsPerPage = $postsPerPage, style = $style WHERE id = '1'" 
6

Virgül değerleri ayırmak

$con = new mysqli("localhost", "my_user", "my_password", "world"); 
$sql = "UPDATE `some_table` SET `txid`= '$txid', `data` = '$data' WHERE `wallet` = '$wallet'"; 
if ($mysqli->query($sql, $con)) { 
    print "wallet $wallet updated"; 
}else{ 
    printf("Errormessage: %s\n", $con->error); 
} 
$con->close(); 
+0

Tamam, ama hiçbir upvote çünkü bu yaklaşımdaki göz kamaştırıcı kusurları işaretlemeyi unutmuştunuz. :) –

1

, ben kullanabilirsiniz tahmin

$sql = "UPDATE users SET firstname = :firstname, lastname = :lastname WHERE id= :id"; 
$query = $this->pdo->prepare($sql); 
$result = $query->execute(array(':firstname' => $firstname, ':lastname' => $lastname, ':id' => $id)); 
0

gibi görünecektir::

İlgili konular