无法在php中使用存储过程填充select
我在页面顶部有一个标签(标题区-这是因为我正在进行会话),然后在填充的地方有第二个php打开和关闭标签:无法在php中使用存储过程填充select,php,mysql,stored-procedures,Php,Mysql,Stored Procedures,我在页面顶部有一个标签(标题区-这是因为我正在进行会话),然后在填充的地方有第二个php打开和关闭标签: require_once "Constants.php"; require_once "database.php"; require_once "fun_class.php"; $fun_class = new fun_class(); $database = new database(); $myConnection = $database->connect_database(SER
require_once "Constants.php";
require_once "database.php";
require_once "fun_class.php";
$fun_class = new fun_class();
$database = new database();
$myConnection = $database->connect_database(SERVER,USER,PASSWORD,DATABASE);
当执行时(在phpmyadmin中),它返回两个表,一个称为category_id,带有id,第二个称为name,它具有分配给id的类别名称
我对php非常陌生,我的函数可能有问题,但由于缺乏经验,我找不到错误。因为需要用HTML打印这些字符串,所以需要使用像
echo
这样的函数。在fillDropDownCategory()
这个变量不会因为返回而被打印,所以您需要通过执行以下操作来打印它
BEGIN
SELECT category_id, name AS name
FROM xxx.category
ORDER BY name;
END
当然,您还需要删除fillDropDownCategory()
中的echo
调用,以避免在HTML中打印一些不需要的字符串
<select>
<?php
echo $fun_class->fillDropDownCategory($myConnection);
?>
</select>
改成
$id = $recs['category_id'];
$display_name = stripslashes($recs['name']);
谢谢大家的努力 $result=$mysqli->query(“调用rb\u selectCategory()”//如果($result=$mysqli->query(“Call rb\u selectCategory()”),则调用存储过程{
你这样做了两次;这不是必需的,可能是问题的根源。@FunkFortyNiner对,这是我的错误。我试图去掉if并在没有它的情况下添加$result=…
以查看是否有效。忘记去掉它,谢谢。添加mysqli\u错误($mysqli)
并查看它返回的内容。同时使用php的错误报告。@FunkFortyNiner致命错误:无法在第46行的C:\xampp\htdocs\xxx\fun\u class.php中使用stdClass类型的对象作为数组
内部while循环。@tadman我必须使用存储过程。感谢您提供的异常信息,它非常有用!这样做会使站点加载到
,然后显示致命错误:无法在第46行的C:\xampp\htdocs\xxx\fun\u class.php中使用stdClass类型的对象作为数组。第46行是$id=$recs['category_id'];
内部while循环。感谢echo
的提示,我会记住这一点!这是因为mysqli_result::fetch_object()
实际上返回了stdClass
的一个实例,所以您需要以面向对象的方式获取值(例如$recs->category_id
)或者只需使用mysqli\u result::fetch\u assoc()
以关联数组的形式获取结果。为什么要在不留下任何注释的情况下对格式良好的答案进行向下投票?@FunkFortyNiner可能是因为此答案不包含关于回显值的部分?
BEGIN
SELECT category_id, name AS name
FROM xxx.category
ORDER BY name;
END
<select>
<?php
echo $fun_class->fillDropDownCategory($myConnection);
?>
</select>
$id = $recs['category_id'];
$display_name = stripslashes($recs['name']);
$id = $recs->category_id;
$display_name = stripslashes($recs->name);