我想創建一個自定義MVC框架,我有一個函數,它需要在數組中並觸發插入查詢。使用PHP檢查字段的值是否是一個mysql函數
function insertFromArray($array, $table) {
foreach ($array as $key => $value) {
$fields[] = "`" . $key . "`";
$values[] = "'" . $value . "'";
}
$sql = "INSERT INTO `$table` (" . implode(",", $fields) . ") VALUES (" . implode(",", $values) . ")";
mysql_query($sql);
return (mysql_error()) ? mysql_error() : mysql_insert_id();
}
但是,當我得到一些MySQL的功能,而不是字符串或整我的功能不起作用說對已備案的名稱「日期時間」我在這種情況下獲得價值= NOW()我的查詢是
INSERT INTO `$table` (`field1`, `field2`, `dateTime`) VALUES ('value1','value2','NOW()')
這將拋出錯誤我想要一些通用的解決方案,以便我的查詢可以在任何情況下運行,如果它是一個字符串,數字或者它是任何mysql函數。
我試着創建一個所有函數的數組,並開始比較,如果$ value的開始與mysql函數數組中的任何函數匹配,但我認爲這不是一個好辦法,那麼任何更好的方法來做到這一點
請!停止使用已棄用的mysql_ *函數!他們已被棄用,並在下一個PHP版本中刪除。使用mysqli_ *或更好地使用PDO –
應該有一種方法來知道它們是SQL函數而不是常規值。例如:文本框旁邊的下拉菜單,用於描述您所期望的輸入類型。在SQL函數的情況下,可能試着將它們封裝在元數據字符串中,例如:[SQL_FUNCTION = NOW()],然後在創建插入查詢之前解析它。 – Lysender