PHP: обновление нескольких полей MySQL в одном запросе

Я просто пытаюсь обновить несколько значений в своей таблице. Какой был бы лучший способ сделать это? Вот текущий код:

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

Другое обновление, которое я хочу включить:

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

Благодаря!

Добавьте несколько столбцов с разделителями-запятыми:

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

Однако вы не дезинфицируете свои входы? Это означает, что любой случайный хакер может уничтожить вашу базу данных. См. Этот вопрос: какой лучший метод для дезинфекции ввода пользователя с помощью PHP?

Кроме того, это стиль числа или строки? Я принимаю строку, поэтому ее нужно будет процитировать.

Запятая разделяет значения:

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

Если вы используете pdo, это будет выглядеть так:

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

Я думаю, вы можете использовать:

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