我无法使用oops概念从数据库中检索数量

时间:2014-02-13 07:43:01

标签: php mysql oop

我有一个项目在oops概念的PHP。我做两个文件一个连接amothe html我想打印我的数据在html文件的最后一行使用php打印量这里HTML代码

 <?php
    include('connection.php');
    $obj=new connect;

    $x=$obj->search();
    while($row = MySQLi_Result($x))
    {
        echo $row['amount'];
    }
     ?>


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>

    <body>
    Your Amount 
    <input type="text" name="date" value="<?php echo date("d-m-y");?>"/>
    <input type="text" name="amount" id="amount" />

    <a href="add.php">add</a>
    <a href="subtract.php">subtract</a>
    </body>
    </html>

这里是我的connection.php

 <?php 
    //con.php

        class connect
        {
            var $conn;
            function __construct()
            {
                $this->conn=new MySQLi("localhost","root","","project111");
            }

            function add($date,$amount,$d)  
            {
                $addData=$this->conn->prepare('INSERT INTO `totalamount` (`date`,`amount`,detail)values (?,?,?)');
                $addData->bind_param('sss',$date,$amount,$d);
                $addData->execute();
            }

            function search()
            {
                $search=$this->conn->prepare('select * from `totalamount`');
                $search->execute();
                }
        }



        ?>

2 个答案:

答案 0 :(得分:1)

您的search()方法不会返回任何内容。然而,您将其输出分配给$x并尝试在之后使用它。我想你想要返回你必须首先获取的mysqli结果句柄......

这也表明不进行任何错误检测和处理并不是一个好主意。在使用$x之前,您应该检查它包含的内容!如果它不是一个有效的mysqli资源句柄,那么就会出现问题,尝试在随后的mysqli检索命令中使用它是没有意义的。

第三个问题是mysqli_result() 从结果集中返回一行,如您所期望的那样。

我建议你研究一些工作代码的例子,特别是mysqli扩展的文档(它也带有例子)。

答案 1 :(得分:-1)

你必须在一个函数中有写返回,然后你可以捕获数组形式的所有值。

这是写语法:

返回$ search-&gt; execute();