Php PDO查询未返回任何结果,但查询有效
好的,这里有一些我已经为你们调试过的信息Php PDO查询未返回任何结果,但查询有效,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,好的,这里有一些我已经为你们调试过的信息 数据库已连接 查询(使用echo打印时)在PHPMYADMIN中运行良好,返回7行 查询(与旧的mysql_查询函数一起使用时效果良好) 我已经读到,PDO SQL不允许同时进行多个查询。。。但这不是一个单一的查询吗?如果不是,我想我必须回到旧版本 以下是查询(使用echo从PHP文件打印) 其中,在PHPMYADMIN上返回以下内容: Showing rows 0 - 6 (7 total, Query took 0.0004 sec) [Date:
Showing rows 0 - 6 (7 total, Query took 0.0004 sec) [Date: 2014-05-26 - 2014-05-13]
这是密码
try {
$count=0;
$statement = $SQLConnection->prepare('
SELECT `Date`, SUM(`Amount`), `Quantity Sold` FROM ' . $SQLConfig["SQL_DATA_TABLE"] . '
WHERE Date BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY) AND CURDATE()
GROUP BY Date ORDER BY Date DESC');
$statement->execute();
//echo "<tr><td>test</td><td>test</td><td>test</td></tr>";
foreach($statement as $row) {
echo "Row: " . $count;
$count++;
}
} catch (PDOException $e) {
die("Error!: " . $e->getMessage() . "<br/>");
}
然后将foreach更改为
while($row = $statement->fetch()){
但是,它仍然没有返回任何行
我决定最后一次返回到另一个系统,同时保持查询未经编辑,并且使用以下方法可以完美地工作:
mysql_select_db($SQLConfig["SQL_DATABASE"])or die("Error: Cannot locate database");
$statement = 'SELECT `Date`, SUM(`Amount`), `Quantity Sold` FROM ' . $SQLConfig["SQL_DATA_TABLE"] . '
WHERE Date BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY) AND CURDATE()
GROUP BY Date ORDER BY Date DESC';
$results = mysql_query($statement);
while($row = mysql_fetch_array($results)) {
使用SQLi尝试了相同的代码,结果为零。见鬼:/I我正试图转换我的项目,使其安全,并在必要时使用准备好的语句,但这使它变得极其困难
使用Sqli的代码
if($statement = $SQLConnection->prepare('
SELECT `Date`, SUM(`Amount`), `Quantity Sold` FROM ' . $SQLConfig["SQL_DATA_TABLE"] . '
WHERE Date BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY) AND CURDATE()
GROUP BY Date ORDER BY Date DESC'))
{
$statement->execute();
$statement->bind_result($result);
$statement->fetch();
echo "Row: " .$result;
}
根据要求,$SQLConnection是什么:
<?php
$configuration = include_once 'Configuration.php';
$PDOConnection = new PDO('mysql:host' .$Configuration["SQL_HOST"]. ';dbname='.$Configuration["SQL_DATABASE"], $configuration["SQL_USERNAME"], $configuration["SQL_PASSWORD"]);
$NormalConnection = mysql_connect($Configuration["SQL_HOST"], $Configuration["SQL_USERNAME"], $Configuration["SQL_PASSWORD"]) or die("Error: Failure to connect to host.");
$SQLiConnection = new mysqli($Configuration["SQL_HOST"], $Configuration["SQL_USERNAME"], $Configuration["SQL_PASSWORD"], $configuration["SQL_DATABASE"]);
if(mysqli_connect_errno()) {
echo "Connection Failed: " . mysqli_connect_errno();
}
?>
在
$statement->execute()之后代码>添加$statement->fetchAll()代码>同时尝试SQLi和PDO,我将发布back@Daan两者的输出都没有变化。此外,PDO还需要fetchAll(PDO::FETCH_ASSOC)version@ChristianTuckervar_dump($statement->fetchAll(PDO::FETCH_ASSOC))的输出是什么代码>?似乎您应该向我们展示什么是SQLConnection,以及这个对象的类是如何定义的
if($statement = $SQLConnection->prepare('
SELECT `Date`, SUM(`Amount`), `Quantity Sold` FROM ' . $SQLConfig["SQL_DATA_TABLE"] . '
WHERE Date BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY) AND CURDATE()
GROUP BY Date ORDER BY Date DESC'))
{
$statement->execute();
$statement->bind_result($result);
$statement->fetch();
echo "Row: " .$result;
}
<?php
$configuration = include_once 'Configuration.php';
$PDOConnection = new PDO('mysql:host' .$Configuration["SQL_HOST"]. ';dbname='.$Configuration["SQL_DATABASE"], $configuration["SQL_USERNAME"], $configuration["SQL_PASSWORD"]);
$NormalConnection = mysql_connect($Configuration["SQL_HOST"], $Configuration["SQL_USERNAME"], $Configuration["SQL_PASSWORD"]) or die("Error: Failure to connect to host.");
$SQLiConnection = new mysqli($Configuration["SQL_HOST"], $Configuration["SQL_USERNAME"], $Configuration["SQL_PASSWORD"], $configuration["SQL_DATABASE"]);
if(mysqli_connect_errno()) {
echo "Connection Failed: " . mysqli_connect_errno();
}
?>
createIndex($PDOConnection, $Configuration);
function createIndex($SQLConnection, $SQLConfig) {