我有这个执行存储过程的 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/