为什么PHP rowCount不能与SQLite一起使用?

时间:2014-12-03 18:55:39

标签: php mysql sqlite pdo

我使用MySQL在PHP中编写了一个应用程序。

最近我认为不需要MySQL,所以我使用转换器将数据库转换为SQLite,并将我的PDO转换为使用SQLite。

主要是开箱即用,但对于任何访问rowCount的页面,它们都会死掉。

打破第1页

的示例代码
  <?php
    $dbh = new PDO('sqlite:database.sqlite');

    $sql = "SELECT * FROM events";

    $stmt = $pdo->prepare($sql);

    $stmt->execute();

    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

    if ($stmt->rowCount() > 0) { ?>
    <select class="form-control" name="id">
      <?php foreach ($results as $row) { ?>
        <option class="form-control" id="id" name="id" value="<?php echo $row['id']; ?>"><?php echo $row['fn'] . " " . $row['sn'] . " (" . $row['sd'] . " - " . $row['ed'] . ")";?></option>
      <?php } ?>
    </select>
  <?php } ?>

打破第2页的示例代码

  <?php
  function user_is_admin()
  {
    $dbh = new PDO('sqlite:database.sqlite');
    $stmt = $dbh->prepare("SELECT * FROM users WHERE un = :un AND ia = 1");
    $stmt->bindParam(":un", $_SESSION['user']);
    $stmt->execute();
    $total = $stmt->rowCount();

    if ( $total == 1 ) {
      return true;
    }
  }
  ?>

这会杀死页面并且其下没有任何内容。

为什么会这样?

我认为PDO是通用的,就像MySQL,SQLite等可以使用相同的代码一样。

我应该使用什么?

0 个答案:

没有答案