2

次のようなテーブル userx があります。

id----------text---------num          
1-----------foo-----------0  
2-----------bar-----------0  
3-----------widget--------0  
4-----------widget--------0  
5-----------widget--------0  
6-----------widget--------0  
7-----------widget--------0  
8-----------widget--------0

私はこのような配列を持っています:

$numeros = array(30, 50, 60, 70, 90, 110, 130, 150);

したがって、$numeros からすべての結果を取得し、次のように (id=1 から始まる) "num" という列に更新するクエリを作成したいと考えています。

id----------text--------------num          
1-----------foo--------------30  
2-----------bar--------------50  
3-----------widget-----------60  
4-----------widget-----------70  
5-----------widget-----------90  
6-----------widget-----------110  
7-----------widget-----------130  
8-----------widget-----------150 

そのための更新を単一の更新(またはループ内の複数)クエリにすることは可能ですか?どうやって?

4

2 に答える 2

0

次のようなことを試すことができます:

$query = "UPDATE userx SET num=? WHERE id=?";
for($j = 0, $j < sizeof(numeros); $j++)
{
    $index = $j+1;        
    $stmt = $db->prepare($query);
    $stmt->bind_param('ii', $numeros[$j], $index);
    $stmt->execute();
}

技術的には 1 つのクエリではありませんが、1 回しか記述していません。

于 2013-03-25T19:56:05.890 に答える