在尝试将代码切换到我的实时服务器时,我似乎遇到了一个奇怪的问题。它可以在我的本地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-&gt; 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();
}
?>
答案 0 :(得分:0)
只是问一下,您确定已添加的扩展程序已加载吗?
也许问题存在与否。希望有所帮助。
答案 1 :(得分:0)
mysqli_stmt :: get_result
仅适用于 mysqlnd 包(php扩展名)。
(php5-mysqlnd)不在(php5-mysql)