Use variable in SQL statement

时间:2016-04-04 作者:akschoeck

我有这个:

<?php
$jerseys = $wpdb->get_results("SELECT order_item_id, order_id FROM wp_woocommerce_order_items WHERE order_item_name = \'Mystery Jersey\'");
echo "<p>Jerseys</p>";
if ( $jerseys )
{
    foreach ( $jerseys as $post )
    {   
        $orderID = $post->order_id;
        $size = $wpdb->get_results("SELECT meta_value FROM wp_woocommerce_order_itemmeta WHERE meta_key = \'_wc_checkout_add_on_label\' AND order_item_id = \'" . echo $orderID . "\'");
        echo \'<p>\' ;
        //var_dump($post[$i]); 
        print_r($size);
        echo $orderID;
        echo $size->meta_value;
        $i++;
        echo \'</p>\';
    }   
}
?>
我有两个表要从中获取信息,其中一个表依赖于另一个表。这个$jerseys 声明从“神秘球衣”类型的自定义表中获取所有订单。十个$size 声明试图从另一张表中获得这些球衣的尺寸。我想几乎所有的东西都能正常工作,除了我试图根据之前的查询获取查询的部分。

1 个回复
SO网友:RRikesh

首先,作为PHP规则,您不需要echo 执行string concatenation.

其次,你需要prepare your query 在内部添加变量时。

因此,您的查询将如下所示:

$prepared = $wpdb->prepare(
  "SELECT meta_value FROM wp_woocommerce_order_itemmeta WHERE meta_key = \'_wc_checkout_add_on_label\' AND order_item_id = %s",
  $orderID
);
$size = $wpdb->get_results( $prepared );