我有以下的php/pdo,它調用一個mysql程序返回一個文件名,但儘管準備好的語句是正確的,並從剪切和粘貼的數據庫查詢返回以下內容:php pdo查詢無法返回結果,儘管準備好的語句正確
DB查詢/結果
> call sp_CDRbyCustomer('Wind', 'R2X', DATE(DATE_SUB(NOW(), INTERVAL 10 WEEK)), DATE(NOW()));
> +------------------------------------------------------+
> | Exported filename |
> +------------------------------------------------------+
> | '/tmp/CDR_for_Wind_20140704-20140912_1410516460.csv' |
> +------------------------------------------------------+
> 1 row in set (0.02 sec)
的PHP/PDO
應返回我們的FIL ename是:
include('db.ini');
define('DEBUG', true);
if (DEBUG) {
openlog("$iam", LOG_PID | LOG_ODELAY,LOG_LOCAL4);
syslog(LOG_INFO, "START OF DEBUG LOG.");
}
/***** connect to database using db.ini for credentials *****/
try {
$dbConn = new PDO('mysql:host='.$host.';dbname='.$db, $dbUser, $dbPass, array (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION));
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$structure_name = "'Wind'";
$cug_uid = "'R2X'";
$num_weeks = 10;
/**** Query - export file name ****/
$sqlQuery4filename = ("
call sp_CDRbyCustomer($structure_name, $cug_uid, DATE(DATE_SUB(NOW(), INTERVAL $num_weeks WEEK)), DATE(NOW()))
");
$sqlQuery4filename = preg_replace("/\r|\n/", "", $sqlQuery4filename);
debug("01: sqlQueryfile string is '" . $sqlQuery4filename . "'");
$stmnt = $dbConn->prepare($sqlQuery4filename);
debug($stmnt);
$stmnt->execute();
$stmnt->closeCursor();
$filename = $stmnt->fetch(PDO::FETCH_ASSOC);
$filename = $filename['Exported filename'];
debug("01: filename string is '" . $filename . "'");
function debug($debug) {
if(!DEBUG) return;
print '
<div class="debug">
';
print_r($debug);
print '
</div><!-- end of debug -->
';
}
但是,我只收到一個空字符串返回。
我已經有這個工作,但在顛覆它後,我結束了錯誤的版本,不能再得到它的工作,任何人給我任何線索,我做錯了什麼。
要使結果這個更清楚,上面的sql過程調用是'cut'和'paste'從'debug($ stmnt);'的結果。然後我們運行'$ stmnt-> execute();'和'$ stmnt-> closeCursor();'但是'$ stmnt-> fetch(PDO :: FETCH_ASSOC);'返回空。 – 2014-09-12 11:19:39