PHP:如何为存储过程使用日期间隔?

标签 php mysql mysqli

我有这个执行存储过程的 php 脚本。我正在检索采用两个参数值的 StoredProcedure。

问题:

我怎么说:过去 10 分钟的实际日期?所以,我想要每 10 分钟的旧记录。 这是否可能,即使这个 StoredProcedure 已经提供给我只是为了以开始和结束日期作为参数的可读访问?

提前致谢

PHP:

    //DATE values to replace in parameters
    $start_date = "2014-11-11";
    $end_date   = "2014-11-12"; 

    if($row = mysqli_fetch_assoc($query_overlay_result)){
        $sp_value = $row['query']; 
    }

    //replacing parameter values for Dates
    $sp_value = str_replace('start_date',$start_date,$sp_value);
    $sp_value = str_replace('end_date',$end_date,$sp_value);

存储过程:它位于不同的服务器中,因此我将 SP 的实际字符串值保存在我的表“覆盖”中,如下所示:CALL telephony.sp_get_spec_stat_all_agents( 'start_date', 'end_date')

    //Overlay table
    $query_overlay_sql    = "SELECT query FROM overlays";
    //prepare query
    $query_overlay_result = mysqli_query($dbh1,$query_overlay_sql);

然后,我通过检索连接来自不同服务器的表所需的两个值来执行 SP。

while ($row = mysqli_fetch_assoc($dbh2_result)){   
        $memo[] = array( "username"  => $row['memo_code'],
                         "aht_value" => $row['avg_handle_time']
                       );
}

希望这能澄清事情

最佳答案

您可能不需要将准备好的语句的名称存储在数据库中。

更简单的方法是直接运行准备好的语句:

$sql = 'CALL telephony.sp_get_spec_stat_all_agents(NOW() - INTERVAL 10 MINUTE, NOW())';
$query_overlay_result = mysqli_query($dbh2, $sql);

关于PHP:如何为存储过程使用日期间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26976352/

相关文章:

python - 防止慢速查询耗尽 gunicorn 工作池

php - 从另一个类访问数据库类

php - 有没有一种方法可以在不遍历整个数组的情况下查看任何具有命名键的数组元素中是否有数据?

php - 无法在模型对象 Laravel 上调用 SAVE 方法

mysql - 如何在联结表上插入值

mysql - 仅在 MySQL 中插入缺失数据

php - 使用 php 将信息更新到 mysql

php - 如何对mysql的选择结果进行升序编号?

php - Laravel 4.2服务MP3-不可上链

php - ImageMagick:这个转换命令在做什么?