복붙노트

[SQL] PHP : 단일 쿼리에서 업데이트 여러 MySQL의 필드

SQL

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

감사!

해결법

  1. ==============================

    1.쉼표로 분리하여 여러 열을 추가 :

    쉼표로 분리하여 여러 열을 추가 :

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

    그러나, 당신은 당신의 입력을 살균하지 않을 ?? 이것은 어떤 임의 해커가 데이터베이스를 파괴 할 수있는 것을 의미한다. 이 질문을 참조하십시오 : PHP로 사용자 입력을 살균하기위한 가장 좋은 방법은 무엇입니까?

    또한, 스타일은 숫자 또는 문자열입니다? 나는 문자열을 있으리라 믿고있어, 그래서 인용 될 필요가있다.

  2. ==============================

    2.값을 구분 쉼표 :

    값을 구분 쉼표 :

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

    3.당신이 PDO를 사용하는 경우, 그것은 같은 모양

    당신이 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));
    
  4. ==============================

    4.나는 당신이 사용할 수있는 것 같아요 :

    나는 당신이 사용할 수있는 것 같아요 :

    $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();
    
  5. from https://stackoverflow.com/questions/5254173/php-update-multiple-mysql-fields-in-single-query by cc-by-sa and MIT license