2012-02-29 63 views
0

我有以下代码工作,但现在由于某种原因没有。WordPress的数据库更新 - 突然停止工作

if(isset($_REQUEST['website'])){$dbfields['website'] = $_REQUEST['website'];}; 
if(isset($_REQUEST['email'])){$dbfields['email'] = $_REQUEST['email'];}; 
$where = array('ID' => $_REQUEST['ID']); 
$result = $wpdb->update($this->the_table, $dbfields, $where); 
return $result; 

结果对象应返回2,但现在返回0表明值是相同的。 无论我将值设置为何,db都不会更新,并返回0的结果。

有什么方法可以找到wpdb对象正在生成什么查询。不幸的是,我没有真正的能力来正确调试服务器上的PHP。

回答

1

http://codex.wordpress.org/Class_Reference/wpdb#UPDATE_rows

更新一行在表中。如果错误,则返回false;如果成功,则返回受影响的行数。

0(或false)最可能表示发生了错误。我建议你enable debug mode虽然准备筛选Wordpress核心和你已经安装的任何其他插件的所有错误。

此外,除非ID不是主键,否则我只希望您的更新返回至多一个结果。

+0

谢谢菲尔。似乎突然间我需要正确地施放编号。我把这个id当作一个字符串,知道它确实是一个bigint。这以前是好的。至少我已经隔离了这个问题。 – Chin 2012-02-29 05:08:02

+0

我的下一个问题是如何在PHP中将字符串转换为数字。应该很容易。我会谷歌它。 – Chin 2012-02-29 05:10:01

+0

@Chin'$ int =(int)$ string' – Phil 2012-02-29 05:11:56