我目前有这段代码......
$wpdb->update(
$table_name_employee,
array(
'ID' => $_POST["user"],
'Role' => $_POST["Role"],
'Seniority' => $_POST["Seniority"],
'Payroll' => $_POST["Payroll"],
'ReportTo' => $_POST["ReportTo"],
'Tasks' => $_POST["Tasks"],
),
array(
'ID' => $_POST["user"],
)
);
$_POST["Tasks"]
的值是一个数组,而不是一个字符串。它来自复选框代码......
...
<input type=checkbox name="Tasks[]" value="38"> Task 38
<input type=checkbox name="Tasks[]" value="39"> Task 39
<input type=checkbox name="Tasks[]" value="40"> Task 40
... many more
如果我将Tasks[]
更改为Task
,我只会检查一个复选框的值。如果我将其保留为Tasks[]
,则该值将作为数组传递,但上面的$wpdb->update()
命令会因此错误而失败:
Warning: mb_check_encoding() expects parameter 1 to be string, array given in /home/gj/public_html/matrix/bg/wp-includes/wp-db.php on line 2378
Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in /home/gj/public_html/matrix/bg/wp-includes/wp-db.php on line 1094
我的问题是:如果$wpdb->update()
是一个数组,我如何正确修改$_POST["Tasks"]
?我所做的任何搜索都没有成功显示类似的情况。
答案 0 :(得分:0)
Vincent Decaux指出我的大脑放屁并在$wpdb->update()
之前添加了这段代码......
if (isset($_POST['Tasks']))
{
$_POST['Tasks']=implode("|", $_POST['Tasks']);
}