php
  • mysql
  • 2011-08-25 3 views 0 likes 
    0
    $query = "UPDATE TABLE1 
        SET (row1 = '$val1' WHERE row5 = '$someid' AND active = 'yes') 
        , (row1 = '$val2' WHERE row5 = '$someid' AND active = 'yes') 
        , (row1 = '$val3' WHERE row5 = '$someid' AND active = 'yes')"; 
    
    mysql_query($query); 
    

    이 쿼리는 아무것도 수행하지 않습니다. 데이터를 업데이트 할 수 없습니다.
    내가 뭘 잘못하고 있니?PHP mysql 다중 업데이트는 아무 작업도하지 않음

    +0

    잘못 이해합니다. 또한 원시 PHP가 아니라 최종 생성 된 쿼리를 살펴보십시오. 관련 : [참조 : mysql 확장을 사용하는 완벽한 코드 샘플은 무엇입니까?] (http://stackoverflow.com/questions/6198104/reference-what-is-a-perfect-code-sample-using-the-mysql- 확장) –

    +0

    실행하려는 코드가 의미가 없습니다. 조건에 따라'row1'을 세 가지 값 중 하나로 설정하려고합니다. 그러나이 세 가지 경우 모두 같은 상태입니다. 그건 결코 작동하지 않을거야. 세 가지 조건을 지정해야합니다. 일단이 답변에서 제공되는 문법을 사용하는 돈이있다 : http://stackoverflow.com/questions/7190158/php-mysql-multiple-update-do-nothing/7190260#7190260 – Johan

    답변

    1
    UPDATE `table` SET `name`= case `id` 
        when 1 then "Alex" 
        when 2 then "John" 
        when 3 then "Steve" 
    end 
    WHERE `id` in(1,2,3) 
    

    그렇지 않나요?

    1
    $sql_string=' 
    UPDATE `TABLE1` SET `row1`= case `id` 
        when 1 then "'.$val1.'" 
        when 2 then "'.$val2.'" 
        when 3 then "'.$val3.'" 
    end 
    WHERE `row5 ` in('.$someid.','.$someid.','.$someid.') AND `active`= "yes"'; 
    mysql_query($sql_string); 
    
    +0

    $ someid가 내부에서 변경되지 않는다면 where 행은'WHERE row5 = '$ someid'AND active = 'yes ''라고 읽어야합니다. – Johan

    +0

    아마도 '. $ someid1.', '. $ someid2.', '. $ someid3.'을 의미 할 수 있습니다. ? – TROODON

    1

    당신에게 PHP 파일을 다음 코드를 추가하면 당신은 어떤 오류보고를 수행하지 않는

    ini_set('display_errors', 1); 
    error_reporting(E_ALL); 
    
    관련 문제