尝试将代码切换到实时服务器时,我似乎遇到了一个奇怪的问题。它可以在我的本地 WAMP 服务器上正常运行,但是在我的实时服务器上,当我尝试从数据库中提取信息并将其放入表中时,我的 error_log 中的问题标题中出现错误。
这是导致错误的代码:
<?php
$query = 'SELECT * FROM APPLICATIONS';
$stmt = $dbConnection->prepare($query);
$stmt->execute();
$result = $stmt->get_result();
$num_applications = $result->num_rows;
?>
具体来说: $result = $stmt->get_result();
我联系了我的服务器主机以确保安装了正确版本的 PHP。他们让我将以下内容添加到我的 php.ini 文件中:
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so
我这样做了,但它并没有解决问题。然后他们告诉我它必须是我的代码。从我读过的文档,并在我的本地服务器上体验它,代码似乎是正确的,但也许我需要一个外部视角。
这是我称之为数据的表格:
<table class="table table-hover table-striped table-bordered table-condensed">
<tr>
<th style="text-align:center;">Application ID</th>
<th style="text-align:center;">Last Name</th>
<th style="text-align:center;">First Name</th>
<th style="text-align:center;">Organization</th>
<th style="text-align:center;">Title</th>
<th style="text-align:center;">Link to View</th>
</tr>
<?php
for ($i = 0; $i < $num_applications; $i++) {
$row = $result->fetch_assoc();
$id = $row['ID'];
$last_name = $row['LAST_NAME'];
$first_name = $row['FIRST_NAME'];
$organization = $row['ORGANIZATION'];
$title = $row['TITLE'];
$link = '<a href="../view_application.php?id='.$id.'"><i class="icon-external-link" style="color:#1122CC;"></i></a>';
echo
"<tr>
<td style='text-align:center;'>$id</td>
<td style='text-align:center;'>$last_name</td>
<td style='text-align:center;'>$first_name</td>
<td style='text-align:center;'>$organization</td>
<td style='text-align:center;'>$title</td>
<td style='text-align:center;'>$link</td>
</tr>";
}
?>
</table>
评论者询问 $dbConnection 是在哪里定义的,在文件的前面:
<?php
$db_host = 'localhost';
$db_port = '3306';
$db_username = 'user';
$db_password = 'password';
$db_primaryDatabase = 'dbname';
// Connect to the database, using the predefined database variables in /assets/repository/mysql.php
$dbConnection = new mysqli($db_host, $db_username, $db_password, $db_primaryDatabase);
// If there are errors (if the no# of errors is > 1), print out the error and cancel loading the page via exit();
if (mysqli_connect_errno()) {
printf("Could not connect to MySQL databse: %s\n", mysqli_connect_error());
exit();
}
?>