我正在使用自定义用户数据构建仪表板。仪表板上的每个元素都进入循环并显示有关该用户的相关信息。我能够使用会话和循环显示自定义字段,但我还需要更新信息,不知何故它不会更新。请帮助解决这个问题:
<?php
global $wpdb;
$table_name = $wpdb->prefix . 'contract';
$wsid = $_SESSION['wedding-values'];
$results = $wpdb->get_results( "SELECT * FROM $table_name WHERE id=$wsid " );
if ( $results ) {
foreach ( $results as $result ){
$wcname=$result->cname;
$wctname=$result->ctname;
$waddress=$result->address;
$wmobile=$result->mobile;
$wemail=$result->email;
$wdate=$result->Date;
$id=$result->id;
}
}
if ( isset( $_POST['submit'] ) ){
$wpdb->update($table_name,array(
'cname'=>$_POST['cname'],array('id'=>$wsid))
);
}
?>
HTML:
<div id="col-md-9">
<form action="" method="post">
<table>
<tr>
<td><p style="color: red"> Couple Name </p></td>
<td><input type=text name=cname placeholder=<?php echo $wcname;?>></td>
</tr>
<tr>
<td><p style="color: red"> Contact Name </p></td>
<td><?php echo $wctname;?></td>
</tr>
<tr>
<td><p style="color: red"> Address </p></td>
<td><?php echo $waddress;?></td>
</tr>
<tr>
<td><p style="color: red"> Mobile </p></td>
<td><?php echo $wmobile;?></td>
</tr>
<tr>
<td><p style="color: red"> Email</p></td>
<td><?php echo $wemail;?></td>
</tr>
<tr>
<td><p style="color: red"> Date Submitted</p></td>
<td><?php echo $wdate;?></td>
</tr>
<tr>
<td><input type="submit" name="editsave" value="Edit and Save" ></td>
</tr>
</table>
</form>
</div>
答案 0 :(得分:1)
你忘了在查询中添加这两件事,
$table_name,array('cname'=>$_POST['cname']),array('id'=>$wsid),array('%s'),array('%d'))
<强>阵列( '%S'),阵列( '%d')强>
检查此示例
$result = $wpdb->update($table_name,array(
'cname'=>$_POST['cname']),array('id'=>$wsid),array('%s'),array('%d'))
);
if($result > 0){
echo "Successfully Updated";
}
else{
exit( var_dump( $wpdb->last_query ) );
}
$wpdb->flush();
修改强>
同时更改此
if (isset($_POST['submit']))
要
if (isset($_POST['editsave']))
您使用了错误的提交按钮名称
尝试使用此代码。希望这会对你有所帮助。
答案 1 :(得分:-1)
您可以输出错误
if($wpdb->last_error !== '') :
$wpdb->print_error()
endif;
顺便说一下,请使用$ wpdb-&gt;准备准备SQL查询以便安全执行