%d に入れたいんだけども%d に"null"文字列突っ込んだらまあ当然0になるんで、%sに変えちゃう。
prepareがこの辺よしなにしてくれればいいのにクソ。
<?php // hoge はintとする $sql = "update hogetbl set hoge = %s where id = n"; $param = array($hoge != null ? $hoge : "NULL"); $stmt = $wpdb->prepare($sql, $param); $stmt = preg_replace("/'NULL'/", "NULL", $stmt); $rc = $wpdb->query($stmt);
mysql がもともとint型でもシングルコーテーションで括った数字を受け付けてくれるので良いのか悪いのかわからんけど、まあできたのでいいかと。
あかん理由があったらどうしようかなあ。
is NULL 書式にしたらええやんて言われるとつらい。
mysql は一応 hoge = NULL で受け付けてくれるしいいやんか。
とりあえず見つけた記事メモっとく。
https://wordpress.stackexchange.com/questions/143405/wpdb-wont-insert-null-into-table-column
$wpdb->update 使ったらいいやんと思うやん?
一緒やねん。