Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取准备语句中的数组时出错_Php_Mysql - Fatal编程技术网

Php 获取准备语句中的数组时出错

Php 获取准备语句中的数组时出错,php,mysql,Php,Mysql,我在使用准备好的语句从表中获取数据时出错。是的,我对准备好的陈述是新手。有人找到解决办法了吗?还是我做错了 <?php session_start(); $student_rollno = $_SESSION['student_roll']; require('../includes/connect.php'); $stmnt = $conn->prepare("SELECT students.roll, students.firstname, students.la

我在使用准备好的语句从表中获取数据时出错。是的,我对准备好的陈述是新手。有人找到解决办法了吗?还是我做错了

<?php

 session_start();

 $student_rollno = $_SESSION['student_roll'];

 require('../includes/connect.php');

 $stmnt = $conn->prepare("SELECT students.roll, students.firstname, students.lastname, students.course, students.semester FROM students,teachers WHERE students.roll = ? AND students.semester = teachers.semester ");


$stmnt->bind_param('i',$student_rollno);

if ($stmnt->execute()){
$result = $stmnt->get_result();
while ($row = $result->fetch_array(MYSQLI_ASSOC)){
    $student_roll = $row["0"];
    $student_name = $row["1"];
    $student_course = $row["2"];
    $student_semester = $row["3"];
     ?>



     <h1>Hello <?php echo $student_roll; ?>. Your details are : </h1><br><br>
        <h2>Roll No : <?php echo $student_name ?></h2>
        <h2>Course : <?php echo $student_course ?></h2>
        <h2>Semester : <?php echo $student_semester ?></h2>

<?php 
}}

 $stmnt->close();
 $conn->close();
?>

你好您的详细信息是:

卷号: 课程: 学期:
我自己刚得到解决方案。顺便说一句,谢谢你给我时间

正确的解决方案是:

        $student_roll = $row["roll"];
        $student_name = $row["firstname"];
        $student_course = $row["lastname"];
        $student_semester = $row["course"];

我想向你推荐一种叫做redbenaphp的替代品

如何在readbeanphp中执行相同的操作

  • 下载rb.zip并解压缩它&您的文件是rb.php
  • 现在,代码如下所示:

    <?php
    
         session_start();
         include "rb.php";
    
         $student_rollno = $_SESSION['student_roll'];
    
         require('../includes/connect.php');
    
    $result=R::getAll("SELECT students.roll, students.firstname, students.lastname, students.course, students.semester FROM students,teachers WHERE students.roll = ? AND students.semester = teachers.semester ",array($student_rollno));
    
    foreach($result as $row){
     $student_roll = $row["students.roll"];
            $student_name = $row["students.firstname"];
            $student_course = $row["students.lastname"];
            $student_semester = $row["students.course"];
             ?>
    
    
    
             <h1>Hello <?php echo $student_roll; ?>. Your details are : </h1><br><br>
                <h2>Roll No : <?php echo $student_name ?></h2>
                <h2>Course : <?php echo $student_course ?></h2>
                <h2>Semester : <?php echo $student_semester ?></h2>
    
        <?php 
        }
    
    ?>
    
    <?php
     R::setup( 'mysql:host=localhost;dbname=mydatabase',
            'user', 'password' ); //for both mysql or mariaDB
    ?>
    
    
    你好您的详细信息是:

    卷号: 课程: 学期:
    按如下所示编辑config.php文件:

    <?php
    
         session_start();
         include "rb.php";
    
         $student_rollno = $_SESSION['student_roll'];
    
         require('../includes/connect.php');
    
    $result=R::getAll("SELECT students.roll, students.firstname, students.lastname, students.course, students.semester FROM students,teachers WHERE students.roll = ? AND students.semester = teachers.semester ",array($student_rollno));
    
    foreach($result as $row){
     $student_roll = $row["students.roll"];
            $student_name = $row["students.firstname"];
            $student_course = $row["students.lastname"];
            $student_semester = $row["students.course"];
             ?>
    
    
    
             <h1>Hello <?php echo $student_roll; ?>. Your details are : </h1><br><br>
                <h2>Roll No : <?php echo $student_name ?></h2>
                <h2>Course : <?php echo $student_course ?></h2>
                <h2>Semester : <?php echo $student_semester ?></h2>
    
        <?php 
        }
    
    ?>
    
    <?php
     R::setup( 'mysql:host=localhost;dbname=mydatabase',
            'user', 'password' ); //for both mysql or mariaDB
    ?>
    

    当您的查询包含
    students.term=teachers.term
    时,您是否首先从教师表中选择
    teachers.term

    您的SQL查询仅从学生表中选择

    you need to fetch `teachers.semester` from teachers table also.
    

    在那里添加PDO异常代码,以便您可以获得准确的错误?iss
    $\u会话['student\u roll']
    definitiveley set?我会使用
    isset
    来检查,是的,我可以回应它。添加-
    或死亡($conn->errorInfo())与您的prepare语句和check一起,我得到了这个错误。谢谢,但我认为使用这种方法将花费我更多的时间,首先理解它,然后将其应用到我的项目中。你有什么建议吗?如果你需要使用pdo,那么使用RedbeanHP将节省你很多时间