0

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

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

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

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

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

发生了什么?

4

3 回答 3

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"; 
   }
于 2012-09-21T19:46:40.447 回答
0

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

//table test.Name and test.Country
while ($rowobj = $resource->fetch_object()){
          printf ("%s (%s)\n", $rowobj->Name, $rowobj->Country);
        }

祝你好运,

于 2012-09-21T20:26:13.143 回答
0

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

让我知道这是否适合您。您还可以在外部文件中定义数据库,然后执行 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(); }

于 2015-06-12T04:18:25.440 回答