Php SELECT语句不适用于mariadb 10.0,但适用于mariadb 5.5

Php SELECT语句不适用于mariadb 10.0,但适用于mariadb 5.5,php,mysql,mariadb,Php,Mysql,Mariadb,由于某些原因,以下select语句在mariadb 10中不执行,但在mariadb 5.5中执行良好。在5.5中,它从数据库中选取这两个时间范围内的值。未能在10上选择任何一个。使用相同的数据库。有什么问题吗?任何人 多谢各位 $_SESSION['post-data'] = $_POST; $t1 = $_SESSION['post-data']['t1']; $t2 = $_SESSION['post-data']['t2']; $time1 = mysqli_real_escape_s

由于某些原因,以下select语句在mariadb 10中不执行,但在mariadb 5.5中执行良好。在5.5中,它从数据库中选取这两个时间范围内的值。未能在10上选择任何一个。使用相同的数据库。有什么问题吗?任何人 多谢各位

$_SESSION['post-data'] = $_POST;

$t1 = $_SESSION['post-data']['t1'];
$t2 = $_SESSION['post-data']['t2'];
$time1 = mysqli_real_escape_string($conn, $t1);
$time2 = mysqli_real_escape_string($conn, $t2);

$sql =  "SELECT DISTINCT msisdn FROM customer WHERE DATE_FORMAT(time_paid,'%Y-%c-%e') 
     BETWEEN ADDDATE('$time1',INTERVAL 0 HOUR) 
        AND ADDDATE('$time2',INTERVAL '23:59' HOUR_MINUTE)";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  echo "Number of Recipients: ";  echo "$result->num_rows <br> <br>";
    // output data of each row
    while($row = $result->fetch_assoc()) {
 $mobilenumber[] = $row['msisdn'];

    }
} else {
    echo "No Contacts to Display";
}

$mob_numbers = implode(", " , $mobilenumber);
echo "$mob_numbers";
$_SESSION['numbers'] = $mob_numbers;
$\u会话['post-data']=$\u post;
$t1=$\会话['post-data']['t1'];
$t2=$\会话['post-data']['t2'];
$time1=mysqli\u real\u escape\u字符串($conn,$t1);
$time2=mysqli\u real\u escape\u字符串($conn,$t2);
$sql=“从客户中选择不同的msisdn,其中日期为格式(支付的时间,%Y-%c-%e”)
ADDDATE之间(“$time1”,间隔0小时)
和ADDDATE(“$time2”,间隔“23:59”小时/分钟)”;
$result=$conn->query($sql);
如果($result->num_rows>0){
echo“收件人数量:”;echo“$result->num_rows

”; //每行的输出数据 而($row=$result->fetch_assoc()){ $mobilenumber[]=$row['msisdn']; } }否则{ 回显“无需显示的联系人”; } $mob_numbers=内爆(“,”,$mobilenumber); 回显“$mob_编号”; $\u会话['numbers]=$mob\u编号;
不要麻烦使用
日期格式
假设支付的时间是
日期
日期时间
时间戳
。这将允许您使用索引。然后添加此复合
索引(支付时间,msisdn)
;这将是有益的和“覆盖”

然后将之间的
更改为:

SELECT DISTINCT msisdn
    FROM customer
    WHERE time_paid >= $time1
      AND time_paid  < $time2 + INTERVAL 1 DAY
选择不同的msisdn
来自客户
支付时间>=$time1
支付的时间<$time2+间隔1天

不要麻烦使用
日期格式
假设支付的时间是
日期
日期时间
时间戳
。这将允许您使用索引。然后添加此复合
索引(支付时间,msisdn)
;这将是有益的和“覆盖”

然后将
之间的
更改为:

SELECT DISTINCT msisdn
    FROM customer
    WHERE time_paid >= $time1
      AND time_paid  < $time2 + INTERVAL 1 DAY
选择不同的msisdn
来自客户
支付时间>=$time1
支付的时间<$time2+间隔1天

您使用的是哪个mysql版本?在
服务器版本:5.5.49-MariaDB-1ubuntu0.14.04.1(Ubuntu)
中运行良好,但在
服务器版本:10.0.26-MariaDB-1~精确的MariaDB.org二进制分发中
失败。是否有错误?错误的结果?两个数据库中的数据是否相同?@Philipp相同的数据。没有错误,但echo没有要显示的联系人只是
echo$sql
检查是否有不同…您使用的是哪个mysql版本?在
服务器版本:5.5.49-MariaDB-1ubuntu0.14.04.1(Ubuntu)
中工作正常,但在
服务器版本:10.0.26-MariaDB-1~精确的MariaDB.org二进制分发中失败。是否有错误?错误的结果?两个数据库中的数据是否相同?@Philipp相同的数据。没有错误,但echo没有要显示的联系人只是
echo$sql检查是否有不同的内容。。。