我有這個SQL查詢,我需要添加一個時間戳到一個名爲'創建'的字段在以前的函數更新。我加了$sqlMod = sprintf("UPDATE %s SET last_modified=now(), %s WHERE id='%s'", $table, $implodeArray, $_POST['id']);
,它工作得很好。然而,我似乎無法得到正確的插入功能,它正常工作的語法。我嘗試過(created, %s) VALUES ("now(), %s")
...並且它不起作用。在php中插入時間戳
$sql = sprintf('INSERT INTO %s (%s) VALUES ("%s")', $table, implode(', ', array_map('mysql_escape_string', array_keys($values))), implode('", "',array_map('mysql_escape_string', $values)));
目前:INSERT INTO projects (created, project_name, project_bold, project_content, id) VALUES ("now(), something", "something", "something", "46919705")
不要使用'mysql_escape_string()'。改用更全面的'mysql_real_escape_string()'代替。從長遠來看,考慮切換到支持MySQLi或PDO等預處理語句的API,但您仍然需要在表名中爲動態SQL(如此)進行連接。 –
'implode(',',array_map('mysql_escape_string',array_keys($ values)))'是錯誤的。 –
INSERT INTO項目(創建,project_name,project_bold,project_content,id)VALUES(「now(),something」,「something」,「something」,「46919705」) – Alex