$wpdb in php 5.5

时间:2014-01-25 作者:derekshirk

我正在帮助一位朋友更新他们的网站,并将其移动到新的服务器上。他们的旧服务器运行php 5.3.6-13,新站点运行php 5.5。

有一个使用$wpdb的自定义插件,允许用户编辑写入数据库中自定义表的一些信息,特别是:

$query = "UPDATE wp_building_plan SET sale_price = \'$sale_price\', available = \'$available\', broker_name = \'$broker_name\', broker_email = \'$broker_email\',    broker_phone = \'$broker_phone\' WHERE id = \'$unit_id\' "; 
$wpdb->query($query);
以下是插件的实际代码:http://snippi.com/s/dk7bxvx

在运行5.3的服务器上,更新或更改信息时,可以将数据写入wp\\U building\\u plan表中的相应行。在运行5.5的新服务器上,当插件中的数据发生更改时,根本不会更改或写入数据库。

我试图找到一种更好的方法来编写与PHP 5.5兼容的更新wp\\U building\\U plan代码

我已经检查了以下链接并尝试实现它们,但没有任何成功:http://www.php.net/manual/en/function.mysql-db-query.phphttp://codex.wordpress.org/Class_Reference/wpdbhttp://make.wordpress.org/core/2012/12/12/php-warning-missing-argument-2-for-wpdb-prepare/http://markoheijnen.com/the-future-of-wpdb/

如能向正确方向提供任何提示或推动,将不胜感激,d

1 个回复
SO网友:Otto

PHP 5.3和5.5在这方面没有区别。代码不需要更改。

但是,您仍然应该正确使用prepare。像这样:

$query = $wpdb->prepare( \'UPDATE wp_building_plan SET sale_price = %s, available = %s, broker_name = %s, broker_email = %s,    broker_phone = %s WHERE id = %s\', $sale_price, $available, $broker_name, $broker_email, $broker_phone, $unit_id );
$wpdb->query($query);
如果您看到服务器之间存在差异,那么问题可能在于数据库本身。其中一张桌子是只读的还是类似的东西?该表是否存在?使用phpMyAdmin之类的工具检查新数据库,看看上面有什么。

结束

相关推荐

使用wpdb从WordPress数据库访问JSON结果

我将Google API的JSON结果添加到wp\\U选项表中。在这一点上,我只需要回应特定的元素。即坐标。我的选项名称是py\\u menu\\u item。option\\u value元素之一是coords。这就是JSON结果的表示。下面的代码生成此响应:array(o){}代码:global $wpdb; $myrows = $wpdb->get_results(\"SELECT * FROM $wpdb->wp_options WHERE option_name = py_m