亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過數組更新時使用 PHP/PDO 將 NULL 設置為值

通過數組更新時使用 PHP/PDO 將 NULL 設置為值

PHP
慕少森 2022-07-09 09:43:30
我正在使用 PDO 執行這樣的 SQL 語句。$SQL_stmt = "UPDATE `home_slides` SET main_title=?,sub_title=?,slide_type=?,photo=?,video_small=?,video_large=? WHERE `id`=1"$DBH_stmt = $PDOcon->prepare($SQL_stmt);$DBH_stmt->execute($_POSTData_array);$_POSTData_array 是這樣的Array (     [0] => PIC_Testings     [1] => City     [2] => pic     [3] => 88c85c6670ac164f0a97c85ce5d25211.jpg     [4] => null     [5] => null)問題是我無法在db中將null作為null,它的更新為空白。有什么幫助嗎???更新 !根據 álvaro González 的評論,我嘗試了 var_dump()。var_dump() 更好。我需要堅持:你怎么知道你在插入時得到了 NULL 值?——阿爾瓦羅·岡薩雷斯// result of var_dump($_POSTData_array);array(6) {  [0] => string(12) "PIC Testings"  [1] => string(5) "Citys"  [2] => string(3) "pic"  [3] => string(36) "88c85c6670ac164f0a97c85ce5d25211.jpg"  [4] => string(0) ''  [5] => string(0) ''}所以實際上 $_POSTData_array 中沒有設置 NULL。猜測 var_dump() 比 print_r() 驗證數據要多得多。
查看完整描述

1 回答

?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

找到了解決方案。


解決方案 1 在創建數組元素時使用 array_push。


$_POSTData_array= []

if (empty($_POST[$FieldName])) {

   // $_POSTData_array[] .= `null`;   // previous method

   array_push($_POSTedData, null);    // new method

} else {

   array_push($_POSTedData, $_POST[$FieldName]);

}

解決方案 2 在執行 PDO 語句之前創建數組后使用 array_map 將 Null 設置為空白元素。


$_POSTedData_array = array_map(function($value) {

                        return $value === "" ? NULL : $value;

                     }, $_POSTedData_array);

var_dump($_POSTData_array) 的新結果;對于這兩種解決方案


array(6) {

  [0] => string(12) "PIC Testings"

  [1] => string(5) "Citys"

  [2] => string(3) "pic"

  [3] => string(36) "88c85c6670ac164f0a97c85ce5d25211.jpg"

  [4] => NULL

  [5] => NULL

}

謝謝各位的幫助。


對于那些“否決”我的問題的人,你猜怎么著!畢竟有解決辦法。


查看完整回答
反對 回復 2022-07-09
  • 1 回答
  • 0 關注
  • 149 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號