2017-08-11 44 views
-1

我的頁面有$ _ POST接收PDO更新: enter image description here

id: 5296 
sg: 5285-5034 
t_dur: 133867 
... 
id_200: data... 
id_651: ... 
id_38: ... 
id_971: ... 
id_326: ... 
id_327: ... 
id_89: ... 

如何不知道ID更新我的表? ID_ XXX在另一臺可用的

UPDATE table_name SET id_XXX = ? AND id_XXX = ? AND ... WHERE id = 5296 

名單。

+0

你的語法無效。請參閱UPDATE語法手冊https://dev.mysql.com/doc/refman/5.7/en/update.html –

+0

如果我用一個數字替換XXX,它將起作用。這就是爲什麼我問這個問題。 –

+0

什麼是變量變量?如果每個POST都收到它,它不會是一個數組嗎?你只需要一個查詢生成器。 - 但更重要的是:這個可怕的桌子計劃是如何實現的? – mario

回答

1

這不安全,但它顯示瞭如何將列和值添加到查詢中。

<?php 
$update = []; 
foreach($_POST as $key => $value) { 
    if(substr($key, 0, 3) == 'id_') { 
     // Only if $key starts with "id_" 
     $update[] = "$key = $value"; 
    } 
} 
$sql = 'UPDATE table_name SET ' . implode(", ", $update) . " WHERE id = 10"; 

[編輯] 選項與三元運算符空值:

<?php 
$update = []; 
foreach($_POST as $key => $value) { 
    if(substr($key, 0, 3) == 'id_') { 
     // Only if $key starts with "id_" 
     $val = (empty($value)) ? 'null' : $value; 
     $update[] = "$key = $value"; 
    } 
} 
$sql = 'UPDATE table_name SET ' . implode(", ", $update) . " WHERE id = 10"; 

[/編輯]

+0

它的工作原理!謝謝,但如何設置「空」$值如果爲空? (例:id_89 ='' - > id_89 = _null_) –