gpt4 book ai didi

php - 我将哪种 fetch_style 与 PDO 一起使用,以便我可以使用 PHP extract() 函数?

转载 作者:行者123 更新时间:2023-12-01 00:43:35 24 4
gpt4 key购买 nike

我有以下内容:

extract($this->model->findByStudentID(4));
print_r($this->model->findByStudentID(4));
echo "student id: " . $student_id;

extract()功能给我int(0) . print_r()给我:

Array ( [0] => Array ( [student_id] => 4 ......

当我尝试回显变量 $student_id 时,我什么也没得到。没有错误,什么都没有。

$row($this->model->findByStudentID(4));
echo $row["student_id"];

上面给出了一个 undefined index 。

我的查询:

$sql = 'SELECT * FROM students WHERE student_id = :student_id';
$this->adapter->prepare($sql);
$place_holders = array(':student_id' => $_student_search);
$this->adapter->execute($place_holders);
$results = $this->adapter->fetchAll();

foreach ($results as $student){
echo "</br>" . $student["student_id"] . " , " . $student["LAST"] . "</br>";

} //this works

extract($results);
echo $student_id . ' My student ID.'; //undefined variable

最后,这有效:

 echo $results[0]['student_id'] . ' THIS IS IT';

我每次只带回一条记录,那么如何获得 extract()工作所以我可以简单地拥有$student_id通过 extract()功能?

我怎样才能看到什么extract()做了吗?
如何引用我提取的变量,我认为这些变量应该是 $student_id、$last、$first 等。(我没有将 extract() 与请求变量一起使用,因此 extract 在这种情况下似乎有效。)

最佳答案

extract 返回它提取的变量数。所以你不能直接看到它做了什么。

出于此目的使用它会在以后造成麻烦,原因恰恰是:您看不到它创建了哪些变量。当您或其他人稍后回到那段代码时,您或他们将使用一些选择咒语!您最好使用 PDO fetch 中的数组或对象选项。

正如@bad_boy 在评论中所说,它更适合将变量提取到模板范围内。


一个常见的模板示例来演示它经常使用的地方是这样的:

ob_start();
extract($myDataForTheTemplate);
include('my-template.phtml');
$templateContents = ob_get_clean();

$myDataForTheTemplate 数组的内容可用于下面包含的模板文件。

不必使用 $myDataForTheTemplate['myValue'],模板可以执行以下操作:

<p><?= $myValue ?></p>

请注意,这只是一个基本示例,演示了 extract 的常见用例。大多数情况下,这是不必要的或会使事情复杂化。

关于php - 我将哪种 fetch_style 与 PDO 一起使用,以便我可以使用 PHP extract() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25894606/

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