2011-03-10 19 views
14

Básicamente estoy tratando de actualizar múltiples valores en mi tabla. ¿Cuál sería la mejor manera de hacerlo? Aquí está el código actual:PHP: Actualizar múltiples campos de MySQL en una sola consulta

$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()); 

La otra actualización quiero incluir es:

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

Gracias!

Respuesta

44

añaden sus múltiples columnas con separaciones por comas:

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

Sin embargo, usted no está desinfectar sus entradas ?? Esto significaría que cualquier hacker aleatorio podría destruir su base de datos. Consulte esta pregunta: What's the best method for sanitizing user input with PHP?

Además, ¿el estilo es un número o una cadena? Asumo una cadena, por lo que necesitaría ser citada.

6

comas separan los valores:

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

bien, pero no upvote porque olvidaste señalar los flagrantes defectos en este enfoque. :) –

1

Si está utilizando DOP, que se verá como

$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

Creo que se puede utilizar:

$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(); 
Cuestiones relacionadas