第一次問題,長時間讀者:)PHP - 動態POST的動態SQL查詢
我從一個MYSQL數據庫中的列動態地構建表單。這些列 被創建/刪除等..在我的應用程序的其他地方。我的表單針對SQL視圖運行查詢並獲取列名和列數。簡單!使用PHP for循環構建的HTML輸入構建表單 ,併爲新表單字段提供相應的HTML。迄今爲止非常簡單。
現在我想讓用戶更新這些動態添加的字段,並將數據添加到相關列 - 與現有列相同的表 。因此,由於輸入字段的名稱與列的名稱相同,因此將它們發佈到PHP腳本進行處理。
問題是,儘管我已將實際字段名插入到SQL INSERT查詢中,但我無法弄清楚如何從POST中動態提取POST 數據並將其添加到查詢的VALUE部分。
這是我的嘗試.... 該查詢的作品沒有添加變量。
它的工作原理是,第一部分/從先前創建的VIEW中檢索列名 - 因爲它們與表單中的POST名稱相同。然後輸出到數組和變量以插入到Query中。它看起來像implode函數的工作原理,相關的列名在語句中是正確的,但我擔心我將列名插入POST變量的操作不起作用。
$custq = "SELECT * FROM customProperties";
$result = $database->query($custq);
$num_rows = mysql_numrows($result);
while (list($temp) = mysql_fetch_row($result)) {
$columns[] = $temp;
}
$query = '';
foreach($columns as $key=>$value)
{
if(!empty($columns[$key]))
{
$values .= "'".'$_POST'."['".$value."'], ";
}
}
$q = "INSERT INTO nodes
(deviceName,
deviceInfo,
".implode(", ", $columns).",
nodeDateAdded,
status
)
VALUES
('" . $_POST['deviceName'] . "',
'" . $_POST['deviceInfo'] . "',
".$values."
CURDATE(),
'1'
)";
$result = $database->query($q)
任何幫助,非常感謝。我會盡可能地反饋。請注意,相對新的到PHP,所以如果我完全錯了這一點,我會很高興的任何提示/建議
問候
斯蒂芬
非常非常糟糕的做法。鮑比表將毀了你的生活。 http://xkcd.com/327/ – GordonM 2011-12-30 15:11:50
請用'mysql_real_escape_string(str)'從$ _POST轉義數據。否則有人可能會注入危險的SQL代碼! – ComFreek 2011-12-30 15:12:27
謝謝你們。正如我所說,這是一個POC腳本....仍在學習。完成的應用程序將僅供內部使用。任何意見有關的問題? – Stacky 2011-12-31 08:41:45