0
找到這個答案helpful,但是我有大約100個需要更新的輸入。防止MySQL使用空字符串更新列?
我現在有清理的值驗證碼:
foreach($_POST as $key => $value) {
$data[$key] = filter($value);}
我可以從上面的鏈接添加這個問題的答案代碼,影響所有100個輸入或我將被迫上添加IF子句每個輸入。
謝謝。
找到這個答案helpful,但是我有大約100個需要更新的輸入。防止MySQL使用空字符串更新列?
我現在有清理的值驗證碼:
foreach($_POST as $key => $value) {
$data[$key] = filter($value);}
我可以從上面的鏈接添加這個問題的答案代碼,影響所有100個輸入或我將被迫上添加IF子句每個輸入。
謝謝。
$update_arr = array();
foreach ($_POST as $key => $value)
{
if (strlen($value) !== 0)
{
$update_arr[] = $key.' = "'.filter($value).'"';
}
}
$update_string = implode(',',$update_arr);
$table = '';
$where = '';
$format = "UPDATE %s SET %s WHERE %s";
$sql = sprintf($format,$table,$update_string,$where);
我更新爲以下:<?PHP 如果($ _ POST [ '提交'] == '提交') { $ update_arr =陣列(); foreach($ _POST as $ key => $ value) { if(strlen($ value)!== 0) { $ update_arr [] = $ key。' =「'.filter($ value)。'」'; } } $ update_string = implode(',',$ update_arr); $ table =''; $ where =''; $ format =「UPDATE%s SET%s WHERE%s」; $ sql = sprintf($ format,$ table,$ update_string,$ where); 的mysql_query(」 \t UPDATE'labor' \t \t \t \t SET \t \t \t \t labor_status = '$數據[labor_status]', \t \t \t \t labor_type = IF(LENGTH( '$數據[labor_type]')= 0,labor_type,} ...等等,沒有任何數據輸入 – user1949953
沒有工作,還沒有得到答覆... – user1949953
檢查看看生成的查詢是什麼如果SQL語法是正確的,那麼你有一個數據庫連接錯誤,或者你有執行命令的實際代碼的問題。 – Ethan