我见过类似的问题,但没有一个能解决这个问题。我试图在函数中进行查询:
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的新手,所以对我很轻松:)
答案 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