2012-01-29 8 views
0

カラム名、アドレス、状態(たとえば)を持つ表がある場合、それぞれを変数名にするにはどうすればよいですか? 「それをすべての列名を取得して変数に変換してからもう一度返す

$name=$table['name']; 
etc etc 

の長いハードな方法を行うことを希望して、私はPHPで

UPDATE name='$name', address='$address' etc etc 
+3

「長いですway "は正しい方法です – zerkms

+0

あなたの構文例でPHPを使用していると仮定して、タグを追加しました。 –

+0

"長い道のり"を望んでいない場合は、すべての別々の変数を持つ点は何ですか? –

答えて

0

の長い道のりを行くことなくすぐにそれらのすべてをアップグレードしたい、エキス()関数は応じて変数を作成します連想配列引数のキーに与えます。

$table['name'] = 'bob'; 
extract($table); 
print $name; // prints bob 

を使用すると、ハッシュ配列から動的にUPDATEステートメントを生成したい場合は、私はクエリパラメータとこのようにそれを行うだろうhttp://php.net/extract


を参照してください:

$table = array('name' = 'bob' ...etc); 
$sql = "UPDATE mytable SET " 
    . join(",", array_map(function($field) { return "$field=:$field"; }, $table)) 
    . " WHERE ..."; 
$stmt = $pdo->prepare($sql); 
$stmt->execute($table); 
+0

良い点、私はその機能について知りませんでした - そして、反対に 'compact()'も知っていました。次に、UPDATEクエリを構築するために配列上で簡単な 'foreach'を実行することができます。 – Marki555

関連する問題