0

こんにちはecho、 から製品の名前を取得しようとしていますProduct Tableが、代わりにechoからの名前Category tableです。2 つのテーブルのいずれかから名前を変更することとは別に、これを停止する方法はありますか?

Table: Product

   Pid     Name
    1      man
    2      woman
    3      child


Table: Category

  CatID    Name       Pid
    1       pen        1
    2       pen        1
    3       pencil     2
    3       red_pen    3


Table: active_product

  ATpid  size  pid   price
    1     12    1     10
    2     14    2     15
    3     16    3     20
    4     18    4     30

PDO:

$stmt = $conn->prepare("
    SELECT Product.Name, Category.Name, size, Price
    FROM active_Product, Product, Category
    WHERE Product.ProdID ='$item_id'
    AND size = '$size '
    AND Category.Name = '$pcategory'
    Limit  1");
$stmt->bindParam('$item_id',$item_id);
$stmt->bindParam('$size',$size); 
$stmt->bindParam('$pcategory',$pcategory); 
$stmt->execute();
foreach($stmt->fetchAll(PDO::FETCH_ASSOC) as $row ){
    $product_name = $row["Name"];
4

3 に答える 3

0

既に述べた修正とは別に、変数をバインドしているのではなく、SQL ステートメントに変数を挿入しているだけです。

以下を使用する必要があります。

$stmt = $conn->prepare("
SELECT Product.Name as productName, Category.Name as categoryName, size, Price
FROM active_Product, Product, Category
WHERE Product.ProdID =:item_id
AND size = :size  AND Category.Name = :pcategory Limit  1");
$stmt->bindParam(':item_id',$item_id);
$stmt->bindParam(':size',$size); 
$stmt->bindParam(':pcategory',$pcategory);

それ以外の:

$stmt = $conn->prepare("
SELECT Product.Name, Category.Name, size, Price
FROM active_Product, Product, Category
WHERE Product.ProdID ='$item_id'
AND size = '$size '  AND Category.Name = '$pcategory' Limit  1");
$stmt->bindParam('$item_id',$item_id);
$stmt->bindParam('$size',$size); 
$stmt->bindParam('$pcategory',$pcategory);

:の代わりにを使用する必要$があり、変数を引用符で囲む必要がないことに注意してください。

于 2013-06-21T22:58:14.643 に答える