用oop查询数据库

时间:2012-09-21 19:39:36

标签: php database

我第一次使用oop连接到数据库并且直接提出问题,下面是我正在努力解决的代码:

$q = 'SELECT * FROM test';
       $sqli->query($q);

       if($sqli->query($q)){
           echo "worked";               
       }

       if($sqli->error){
           echo $sqli->error;
       }

我在连接到数据库时检查了错误并且工作正常,但是当我运行此查询时,我没有输出,为什么?我预计会出现错误或“有效”,但两者都没有。

发生了什么事?

3 个答案:

答案 0 :(得分:0)

我在源代码中添加了一些注释以帮助:

   $q = 'SELECT * FROM test';
   //$sqli is the result of a 
   //new mysqli("localhost", "user", "password", "database");
   $resource = $sqli->query($q); // this returns a resource or false

   if(!$resource) {
       echo $sqli->error;
       die; // do not process further
   }

   // process the results
   $rows = $resource->fetch_all();
   if ($rows) {  // check if there are rows 
     echo "worked";               
   }
   else {
     echo "query is ok, but there are no rows"; 
   }

答案 1 :(得分:0)

您还可以使用$ resource-> fetch_object()返回输出对象。因此,如果您想从结果集中打印特定数据,您可以执行类似

的操作
//table test.Name and test.Country
while ($rowobj = $resource->fetch_object()){
          printf ("%s (%s)\n", $rowobj->Name, $rowobj->Country);
        }
祝你好运,

答案 2 :(得分:0)

您可以使用此方法,我希望它是您正在寻找的。您需要先定义数据库。然后你可以在OOP中连接并测试连接是否为真或退出();

如果这对您有用,请告诉我。您还可以在外部文件中定义数据库,只需执行include();对于需要连接到数据库的任何页面,请在脚本顶部。

define("SERVER","IP Address");
define("USER","DB USERNAME");
define("PASSWORD","DB PASSWORD");
define("DATABASE","DB NAME");

// This is for connection $mysqli = new mysqli(SERVER, USER, PASSWORD, DATABASE); if ($mysqli->connect_errno) { echo "Connection to MySQL failed: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; exit(); }