php的mysqli_multi_query无效

时间:2016-02-23 05:19:13

标签: php mysql mysqli

我一直在尝试执行多个查询,所以我搜索了一个更好的方法来解决这个问题,我在php中读到了 mysqli_multi_query

我自己尝试看结果,但它一直给我错误。这是代码:

$studid = $_GET['stud_id'];
$classcode = $_GET['class'];

$conn = new MySQLi($host, $username, $password, $dbname) or die('Can not connect to database');     

$sql = "SELECT * FROM tbl_students WHERE stud_id = '".$studid."'";
$sql.= "SELECT * FROM tbl_classes WHERE class_code = '".$classcode."'";

if (mysqli_multi_query($conn, $sql)) {
    do {
        /* store first result set */
        if ($result = mysqli_store_result($conn)) {
            while ($row = mysqli_fetch_row($result)) {
                $studname = $row[3].", ".$row[1];

            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($conn)) {
            printf("-----------------\n");
            $studname = $row['fname'];
        }
    } while (mysqli_more_results($conn));
}else{ echo "error";}

$conn->close();

使用上面的代码,它只会从我设置的else语句中打印错误。我也尝试将第二个查询更改为$sql .= "SELECT * FROM tbl_classes WHERE class_code = '".$classcode."'";,并尝试在第一个查询后添加分号,告诉SQL我已完成第一个查询,因为我将2个字符串放在一起,但仍然没有运气。

2 个答案:

答案 0 :(得分:0)

试试这个

<?php
     error_reporting(E_ALL);
?>

答案 1 :(得分:0)

提出一个查询而不是两个:

"SELECT ts.*, tc.* 
FROM tbl_students as ts, tbl_classes as tc 
WHERE ts.stud_id = '$studid' 
AND tc.class_code = '$classcode'"

注意:如果您获得了冗余数据,请使用group by。