Php 显示mysql db中的值-fetch_object()错误
我正在将表单中的值提交到mysql数据库中。之后,我将执行一个select查询,尝试获取之前插入的值并显示其结果。我使用while循环迭代并仅显示两个值Php 显示mysql db中的值-fetch_object()错误,php,Php,我正在将表单中的值提交到mysql数据库中。之后,我将执行一个select查询,尝试获取之前插入的值并显示其结果。我使用while循环迭代并仅显示两个值academy\u id和academyname。当试图显示这些值时,我得到一个错误调用未定义的方法mysqli\u stmt::fetch\u object()。如何修复此错误并显示所需的值 if(isset($\u POST['submit'])){ $db_insert=$db_con->prepare(“插入学院(名称、类型、状态、学院
academy\u id
和academyname
。当试图显示这些值时,我得到一个错误调用未定义的方法mysqli\u stmt::fetch\u object()
。如何修复此错误并显示所需的值
if(isset($\u POST['submit'])){
$db_insert=$db_con->prepare(“插入学院(名称、类型、状态、学院id、街道地址、邮编、城市、州、注释)值(?,,,,,,,,,,,,,,?)”;
$db_insert->bind_param('sssisssss',$邮政['name'],$邮政['type'],$邮政['status'],$邮政['acad_id'],$邮政['street'],$邮政['zipcode'],$邮政['city'],$邮政['state'],$邮政['acad_comm']);
$db_insert->execute();
$academy_id=$\u POST['acad_id'];
//基于academy\u id从数据库读取值的查询
$db\u select=$db\u con->prepare(“
选择一个.name作为“Academy name:”,
a、 学院id为“学院id:”,
a、 状态为“状态:”,
a、 类型为“类型:”,
a、 街道地址为“街道:”,
a、 城市作为“城市:”,
a、 状态为“状态:”,
a、 zipcode为“邮政编码:”,
a、 注释为“注释:”
来自a学院
其中a.academy\u id=$academy\u id
");
$db_select->bind_参数(“i”,$academy_id);
$db_选择->执行();
而($row=$db\u select->fetch\u object()){
回显“结果:
”;
回显“学院ID:.$Academy_ID.”
“;
echo“Name:”.$\u POST['Name'].“
”;
}
}
?>
名称:
学院地位:
活跃的
不活跃的
类型:
高中
专上教育
提供的课程?
1.
2.
学院编号:
地址:
邮政编码:
城市:
声明:
总体说明/评论:
在我看来,错误消息非常准确:该类没有我可以发现的任何fetch_object()
方法
请看一些图片。您不应该从语句中获取结果,而是从返回的:
$db_insert->execute();
您也没有进行任何错误检查。这应该失败:
$db_select->bind_param("i", $academy_id);
。。。因为该查询不包含任何占位符:
WHERE a.academy_id = $academy_id
。。。。应该是:
WHERE a.academy_id = :academy_id
但是您没有检查任何结果值,因此您最终会猜测。错误消息在我看来是准确的:该类没有我可以发现的任何
fetch\u object()
方法
请看一些图片。您不应该从语句中获取结果,而是从返回的:
$db_insert->execute();
您也没有进行任何错误检查。这应该失败:
$db_select->bind_param("i", $academy_id);
。。。因为该查询不包含任何占位符:
WHERE a.academy_id = $academy_id
。。。。应该是:
WHERE a.academy_id = :academy_id
但是您不检查任何结果值,因此您最终会猜测。您可以尝试fetch或fetchAll,while和foreach都可以
while ($row = $db_select->fetch(PDO::FETCH_ASSOC)) {
echo "<h2>Result:</h2><br>";
echo "Academy ID: " . $academy_id. "<br>";
echo "Name: " . $_POST['name'] . "<br>";
}
foreach ($db_select->fetchAll(PDO::FETCH_ASSOC) as $row) {
echo "<h2>Result:</h2><br>";
echo "Academy ID: " . $academy_id. "<br>";
echo "Name: " . $_POST['name'] . "<br>";
}
while($row=$db\u select->fetch(PDO::fetch\u ASSOC)){
回显“结果:
”;
回显“学院ID:.$Academy_ID.”
“;
echo“Name:”.$\u POST['Name'].“
”;
}
foreach($db_select->fetchAll(PDO::FETCH_ASSOC)作为$row){
回显“结果:
”;
回显“学院ID:.$Academy_ID.”
“;
echo“Name:”.$\u POST['Name'].“
”;
}
您可以尝试fetch或fetchAll,while和foreach都可以
while ($row = $db_select->fetch(PDO::FETCH_ASSOC)) {
echo "<h2>Result:</h2><br>";
echo "Academy ID: " . $academy_id. "<br>";
echo "Name: " . $_POST['name'] . "<br>";
}
foreach ($db_select->fetchAll(PDO::FETCH_ASSOC) as $row) {
echo "<h2>Result:</h2><br>";
echo "Academy ID: " . $academy_id. "<br>";
echo "Name: " . $_POST['name'] . "<br>";
}
while($row=$db\u select->fetch(PDO::fetch\u ASSOC)){
回显“结果:
”;
回显“学院ID:.$Academy_ID.”
“;
echo“Name:”.$\u POST['Name'].“
”;
}
foreach($db_select->fetchAll(PDO::FETCH_ASSOC)作为$row){
回显“结果:
”;
回显“学院ID:.$Academy_ID.”
“;
echo“Name:”.$\u POST['Name'].“
”;
}
这不是说你可以将任何数据库扩展的函数粘在一起并使其工作。这不是说你可以将任何数据库扩展的函数粘在一起并使其工作。我如何修复$db\u select->bind\u param(“I”,$academy\u id)代码>?+1是,进行了更改,但现在显示了bind_-param
如何修复$db_-select->bind_-param(“I”,$academy_-id)的错误代码>?+1是,进行了更改,但现在显示绑定参数出现错误