如何在函数内使用PDO检索查询

时间:2017-01-06 22:37:44

标签: php function pdo

我见过类似的问题,但没有一个能解决这个问题。我试图在函数中进行查询:

function retrieve() {
    try {
    $resultsall1 = $conn->prepare("SELECT productName, productVendor, SUBSTRING(productDescription, 1, 150), quantityInStock, buyPrice, productcat, MSRP FROM products LEFT JOIN productlines ON products.productLine = productlines.productLine");

    $resultsall1->execute();
    } catch (exception $e) {
        echo "Unable to retrieve results";
    }
    $productsAll1 = $resultsall1->fetchAll();
    return $productsAll1;
}

问题来自我需要调用此函数来检索信息时,我该怎么办?我见过以下,我试过,但我找不到答案。没有功能就可以使用它。

$productAll2 = retrieve();
        foreach ($productAll2 as $Pitem) {
            if ($Pitem['productcat'] == $_GET["cat"]) {
                echo "<div class='Pitem'><img src='Assets/Images/products/"
                .$Pitem['productName']
                .".jpg'><h2>"
                . $Pitem['productName']
                . "</h2><p><b>Description: </b>"
                . $Pitem['SUBSTRING(productDescription, 1, 150)']
                . "...</p><p><b>Product Vendor: </b>"
                .$Pitem['productVendor']
                . "<p><b>Quantity in Stock: </b>"
                .$Pitem['quantityInStock']
                . "<p><b>Price: </b>"
                .$Pitem['buyPrice']
                . "k$<p><b>MSRP: </b>"
                .$Pitem['MSRP']
                ."</p></div>";
            }
        }

感谢您的帮助。另外,$ conn-&gt; prepare和$ pdo-&gt; prepare之间有什么区别?谢谢你的帮助。请记住,我是这个PHP和PDO的新手,所以对我很轻松:)

1 个答案:

答案 0 :(得分:1)

在你的这个函数中,你可以参考 $ conn ,你没有打扰在该函数内定义:

function retrieve() {
    try {
    $resultsall1 = $conn->prepare("SELECT productName, productVendor, SUBSTRING(productDescription, 1, 150), quantityInStock, buyPrice, productcat, MSRP FROM products LEFT JOIN productlines ON products.productLine = productlines.productLine");

    $resultsall1->execute();
    } catch (exception $e) {
        echo "Unable to retrieve results";
    }
    $productsAll1 = $resultsall1->fetchAll();
    return $productsAll1;
}

您必须将变量$ conn作为参数传递,或者使用函数内的全局关键字将其声明为全局变量:

global $conn

请参阅docs on variable scope