gpt4 book ai didi

Php mysql 查询和 foreach 在函数内部不起作用;但外部功能相同的代码有效

转载 作者:行者123 更新时间:2023-12-01 00:11:08 25 4
gpt4 key购买 nike

这里是php函数

(看完评论等更新)

是的,$db 是在函数之外和之上定义的

$db = new PDO("mysql:host={$dbhost};dbname={$dbname};charset=utf8", $dbuser, $dbpass//, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

function vatRates () {
$something = "test";
echo $something;

try {
$query_select_date = "SELECT CurrencyRate FROM 2013Currencies WHERE DateOfCurrencyRate = '2001-03-23'";

$sql_select_date = $db->prepare($query_select_date);
$sql_select_date->execute();
$data_select_date = $sql_select_date->fetchAll(PDO::FETCH_ASSOC);
}
catch (PDOException $e){
echo "<br>DataBase Error: " .$e->getMessage();
}
catch (Exception $e) {
echo "General Error: ".$e->getMessage() .'<br>';
}

foreach ($data_select_date as $data) {
echo($data[CurrencyRate]);
}


}

然后用vatRates();调用函数

在输出中只得到单词:test from $somethingvatRates(); 之后的 php 代码不会执行。

但如果删除 function vatRates () { 并关闭 },则 mysql 查询和 foreach 工作。

为什么 mysql 查询和 foreach 在函数内部不起作用(需要更正的地方)?

最佳答案

function vatRates ($db) {
$something = "test";
echo $something;

$query_select_date = "SELECT CurrencyRate FROM 2013Currencies WHERE DateOfCurrencyRate = '2001-03-23'";

$sql_select_date = $db->prepare($query_select_date);
$sql_select_date->execute();
$data_select_date = $sql_select_date->fetchAll(PDO::FETCH_ASSOC);

foreach ($data_select_date as $data) {
echo($data[CurrencyRate]);
}

}

调用 vatRates($db)

原因:$db 当前在您的函数的可见性之外,这会将其传递给函数。

关于Php mysql 查询和 foreach 在函数内部不起作用;但外部功能相同的代码有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18016653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com