【问题标题】:Convert SQL select into PHP string variable将 SQL 选择转换为 PHP 字符串变量
【发布时间】:2017-12-15 15:43:28
【问题描述】:

我正在尝试选择具有最大 ID 的列中的最新元素,然后将其转换为字符串变量。该表是一个标准的 WordPress wp_postmeta,其中包含以下元素:meta_idpost_idmeta_keymeta_value。我想获取最新的post_id(编号最大),然后将其作为变量字符串用于后面的操作。

目前我得到的代码是:

$order = mysql_query('SELECT MAX(post_id) FROM wp_postmeta')

但当然它并不完整。我只想让 $order 与数据库中的最新订单 ID 相对应,以便在结帐后注入一些额外的信息。

例如,如果数据库中有值为 2700 的 post_id 并且它是最新的post_id 可用的最高 ID 号,那么我希望 $order 正好是 2700。

获得$order2 也是一个很好的补充,它的值为$order + 1 - 以防万一。

【问题讨论】:

  • 请不要再使用 mysql_*() 函数,因为它们已被弃用并从 PHP 版本 7 中删除。请改用 mysqli_*PDO
  • @JiriHrazdil 我认为指出这一点是多余的。他甚至没有费心去完成关于 PHP 及其与 mysql 集成的最简单教程,或者阅读文档,甚至是旧文档。这就像我买了一辆车然后打电话给客户支持询问我应该坐在哪个座位上。
  • 已更改为 mysqli,谢谢。我在 StackExchange 上找到了这个并没有多想就粘贴了,只更改了数据库。

标签: php mysql sql wordpress woocommerce


【解决方案1】:

试试这样的:

$result= mysql_query('SELECT MAX(post_id) order FROM wp_postmeta');
$res = mysql_fetch_assoc($result);
$order= $res["order"]; 

【讨论】:

  • 做或不做,没有“尝试”。 好的答案将始终解释所做的事情以及为什么以这种方式完成,不仅是为了 OP,也是为了 SO 的未来访问者。跨度>
  • 扭转潮流,反对教授/传播草率和危险的编码实践。如果您发布没有准备好的陈述的答案you may want to consider this before posting。另外a more valuable answer comes from showing the OP the right method.
  • 我知道这不是最喜欢的答案,但老实说,这只需要在短时间内工作,以便外部应用程序可以为最后处理的订单向数据库注入额外的数据。该应用程序将在一周内报废,并且我已经准备了大部分代码,只需要这个 $order 即可工作。以后如何将它插入到 SQL 查询中? $_POST("order") 会起作用还是我需要获得额外的变量?
【解决方案2】:

首先,在 WordPress 中,您永远不应该使用 mysql_query,而是使用 $wpdb 类:https://codex.wordpress.org/Class_Reference/wpdb

您可能想要的是以下内容:

$wpdb->get_row('SELECT *,MAX(ID) FROM $wpdb->posts WHERE post_type="offer" GROUP BY ID);

一般来说,WordPress 查找帖子的方式是 meta_query - 不要过于复杂:

https://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

【讨论】:

  • 感谢您,我相信这是最好的解决方案。但是,处理此问题的应用程序是外部的,我没有足够的编程技能将其与 WP 集成。我只需要这个过程来工作,它可能是最快和最肮脏的方式。无论如何,该申请将在下周被取消。
猜你喜欢
  • 2015-10-27
  • 1970-01-01
  • 2014-09-05
  • 2010-09-30
  • 2018-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多