php - 如何使用 PDO 进行 mysqli 查询?
问题描述
我正在尝试使用显示选项菜单类别的递归函数进行缩进。它在 mysqli 查询中运行完美,但我如何在 PDO 查询中做到这一点?
对于任何帮助,谢谢。
我更改了一些行,并且我还更改了与 PDO 的正确数据库连接,但没有工作。
换行:
$dbc = $db->prepare("SELECT * FROM categories ORDER BY title");
$dbc->execute(array());
while (list($id, $parent_id, $category) = $dbc->fetchAll(PDO::FETCH_ASSOC)) {
我的 mysqli 查询需要更改为 PDO:
$db = mysqli_connect("localhost","","","");
echo '<select name="parent_id">
<option value="">Select</option>';
function make_list ($parent,$depth) {
global $option;
foreach ($parent as $id => $cat) {
$whitespace = str_repeat(' - ', $depth * 1);
echo '<option value="' . $cat['id'] . '">'. $whitespace . $cat['category'] . '</option>';
if (isset($option[$id])) {
make_list($option[$id], $depth+1);
}
}
}
$dbc = mysqli_query($db, "SELECT * FROM categories ORDER BY title");
$option = array();
while (list($id, $parent_id, $category) = mysqli_fetch_array($dbc, MYSQLI_NUM)) {
$option[$parent_id][$id] = array('category' => $category, 'id' => $id, 'parent_id' => $parent_id);
}
make_list($option[0], $depth = 0);
echo '</select>';
这里的错误信息:
第 36 行:foreach ($parent as $id => $cat) {
第 56 行:while (list($id, $parent_id, $category) = $dbc->fetchAll(PDO::FETCH_ASSOC)) {
第 58 行: $option[$parent_id][$id] = array('category' => $category, 'id' => $id, 'parent_id' => $parent_id);
第 61 行:make_list($option[0], $depth = 0);
<select name="parent_id">
<option value="">Select</option><br />
<b>Warning</b>: Illegal offset type in <b>/Users/test/Documents/functions/pdo-optionmenu.php</b> on line <b>58</b><br />
<br />
<b>Notice</b>: Undefined offset: 0 in <b>/Users/test/Documents/functions/pdo-optionmenu.php</b> on line <b>56</b><br />
<br />
<b>Notice</b>: Undefined offset: 1 in <b>/Users/test/Documents/functions/pdo-optionmenu.php</b> on line <b>56</b><br />
<br />
<b>Notice</b>: Undefined offset: 2 in <b>/Users/test/Documents/functions/pdo-optionmenu.php</b> on line <b>56</b><br />
<br />
<b>Notice</b>: Undefined offset: 0 in <b>/Users/test/Documents/functions/pdo-optionmenu.php</b> on line <b>61</b><br />
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/Users/test/Documents/functions/pdo-optionmenu.php</b> on line <b>36</b><br />
</select>
解决方案
推荐阅读
- php - 使用phpspreadsheet将mysql表数据导出为xlsx格式,不能不导入
- scheme - 如何在 Scheme 中列出评估的所有中间步骤
- owasp - 尝试扫描时 OWASP/ZAP 悬空
- angular - 在数组中查找字符串
- javascript - 通过会话持久化 url 参数
- python - 在 EC2 中安装 chrome 浏览器无头 Selenium Python
- spring-boot - Thymeleaf:解析多个消息代码中最具体的
- c - 修改函数中结构成员指向的值
- react-native - react-navigation 如何将动态测试 id 添加到 tabBarTestID
- c# - 枪开机自动开火?