Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用PDO查看数据库中不工作的数据_Php_Mysql_Pdo - Fatal编程技术网

Php 使用PDO查看数据库中不工作的数据

Php 使用PDO查看数据库中不工作的数据,php,mysql,pdo,Php,Mysql,Pdo,我有一个用于查看数据库中所有数据的代码,没有sql语句中的WHERE,代码运行良好,但当我尝试操作sql并在不再工作中放入WHERE子句时,当我回显它时,它会给我一个“0”值 这是我的代码 <?php echo $LTID->province(); ?> user.php public function province($query) { $stmt = $this->db->prepare($query); $result = $st

我有一个用于查看数据库中所有数据的代码,没有sql语句中的
WHERE
,代码运行良好,但当我尝试操作sql并在不再工作中放入
WHERE
子句时,当我回显它时,它会给我一个“0”值

这是我的代码

<?php
     echo $LTID->province();
?>
user.php

public function province($query)
{
    $stmt = $this->db->prepare($query);
    $result = $stmt->fetch(PDO::FETCH_ASSOC);

        echo "<td>" .$result['id']." </td>";
        echo "<td>" .$result['area']. "</td>";
}
<?php
     $query="SELECT COUNT(Province) AS id, FORMAT((SUM(Area)),0) AS area FROM rlbet WHERE Province='ALBAY' AND Year_Approved='2014'";
     $LTID->province($query);
?>

<?php
     $query="SELECT COUNT(Province) AS id, FORMAT((SUM(Area)),0) AS area FROM rlbet WHERE Province='CAMARINES NORTE' AND Year_Approved='2014'";
                    $LTID->province($query);
?>
试试这个:

public function province($province, $year_approved)
{
$stmt = $this->db->query("SELECT COUNT(ID) AS id, FORMAT((SUM(ID)),0) AS total from rlbet WHERE Province=:Province AND Year_Approved=:YearApproved");
$stmt->bindValue(':Province', $province, PDO::PARAM_STR);
$stmt->bindValue(':YearApproved', $year_approved, PDO::PARAM_STR);
$result = $stmt->fetch(PDO::FETCH_ASSOC);

echo "<td>" .$result['id']." </td>";
echo "<td>" .$result['area']. "</td>";
}


<?php
province('ALBAY', '2014');
province('CAMARINES NORTE', '2014');    
?>
公共职能省($province,$year\u批准)
{
$stmt=$this->db->query(“选择COUNT(ID)作为ID,格式((SUM(ID)),0)作为rlbet中的总计,其中省=:省,年批准=:年批准”);
$stmt->bindValue(':Province',$Province,PDO::PARAM_STR);
$stmt->bindValue(“:YearApproved”,$year\u approved,PDO::PARAM\u STR);
$result=$stmt->fetch(PDO::fetch_ASSOC);
回显“$result['id']”;
回显“$result['area']”;
}

是否有与
省阿尔拜和2014年
省北卡马里内斯和2014年
匹配的记录?@Reno yes。它们都存储在数据库中。您的查询结果不包含
id
total
:(是的,我很抱歉,我已经更新了我的代码,但仍然出现问题,列为0?我尝试了,但我收到此错误致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解使用near'格式((总和(面积)),0)的正确语法作为rlbet中的区域,在D:\wamp\www\LTID\class.user.php第130行的第1行,Province='CAMARINES NORTE'和Ye'在那里。但是如果我在另一个页面中回显它呢?只要您可以调用该函数,您就可以在另一个页面中回显它。为什么有此代码?因为函数
Province()
已经返回回音,这就是为什么您不必这样做:
回音省('ALBAY','2014');
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FORMAT((SUM(Area)),0) AS area FROM rlbet WHERE Province='CAMARINES NORTE' AND Ye' at line 1' in D:\wamp\www\LTID\class.user.php on line 130
public function province($province, $year_approved)
{
$stmt = $this->db->query("SELECT COUNT(ID) AS id, FORMAT((SUM(ID)),0) AS total from rlbet WHERE Province=:Province AND Year_Approved=:YearApproved");
$stmt->bindValue(':Province', $province, PDO::PARAM_STR);
$stmt->bindValue(':YearApproved', $year_approved, PDO::PARAM_STR);
$result = $stmt->fetch(PDO::FETCH_ASSOC);

echo "<td>" .$result['id']." </td>";
echo "<td>" .$result['area']. "</td>";
}


<?php
province('ALBAY', '2014');
province('CAMARINES NORTE', '2014');    
?>