我使用MySQL在PHP中编写了一个应用程序。
最近我认为不需要MySQL,所以我使用转换器将数据库转换为SQLite,并将我的PDO转换为使用SQLite。
主要是开箱即用,但对于任何访问rowCount的页面,它们都会死掉。
<?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 } ?>
<?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等可以使用相同的代码一样。
我应该使用什么?