首页 > 解决方案 > MySQL 查询在 phpmyadmin 中工作但在 php 代码中没有任何原因?

问题描述

我正在使用以下查询,并希望查询的结果出现在单引号内,例如“10AM”。

$sql2 = mysqli_query($con, "SELECT concat('''', appointment_time ,''''), concat('''', appointment_end_time ,'''') FROM Appointments WHERE appointment_with LIKE 'Sarah'");

if (!$sql2) {
    die('Invalid query: ' . mysqli_error());
}

while ($row2 = mysqli_fetch_assoc($sql2)) {

    $time = array($row2['appointment_time']. "," ." " . $row2['appointment_end_time']);

    $appointment = [];

    foreach ($time as $appointment){
        echo $appointment;
    }

当我在 phpmyadmin 中运行代码而不是在我的 php 代码中运行代码时,这可以正常工作,因为我收到以下消息。

注意:未定义的索引:第 140 行 /Applications/MAMP/htdocs/booking-system/index.php 中的约会时间

注意:未定义的索引:第 140 行 /Applications/MAMP/htdocs/booking-system/index.php 中的约会结束时间,

为什么会这样?

标签: phpmysqlsqlmysqliphpmyadmin

解决方案


你需要在你的 SQL 中给你的字段一个别名......

$sql2 = mysqli_query($con, "SELECT concat('''', appointment_time ,'''') as appointment_time, 
            concat('''', appointment_end_time ,'''') as appointment_end_time 
        FROM Appointments 
        WHERE appointment_with LIKE 'Sarah'");

至于主循环,您似乎构建了一个数组以再次将其打印出来,您可以将该代码减少到...

while ($row2 = mysqli_fetch_assoc($sql2)) {
    echo $row2['appointment_time']. ", " . 
               $row2['appointment_end_time'];
}

推荐阅读