row()[0],在本地服务器上正常工作
我有一个在php中实现的分页函数(带有帮助教程)。 它在本地服务器上正常工作。 但是当上传到Web服务器时,它显示语法错误。
错误:解析错误:语法错误,第46行出现意外的'[''
第46行是:
')->fetch_row()[0];
这是我的完整代码:
<?php
if(isset($_POST['delete'])) {
$id = $_POST['delete'];
// Connect to the database
$dbc = mysqli_connect('xxxxxxxxxxxxxxxxxxx', 'xxxxxxxxxxxxx', 'xxxxxxxxxxxxxxx',
'xxxxxxxxxxxxxxxx')
or die('Error connecting to MySQL server.');
$query = "DELETE FROM questions WHERE question_id = '$id'";
$result = mysqli_query($dbc, $query)
or die('Error querying database.');
mysqli_close($dbc);
}
try {
$dbc = mysqli_connect('xxxxxxxxxxxxxxxxxxx', 'xxxxxxxxxxxxx', 'xxxxxxxxxxxxxxx',
'xxxxxxxxxxxxxxxx')
or die('Error connecting to MySQL server.');
// Find out how many items are in the table
$total = $dbc->query('
SELECT
COUNT(*)
FROM
questions
')->fetch_row()[0];
// How many items to list per page
$limit = 3;
// How many pages will there be
$pages = ceil($total / $limit);
// What page are we currently on?
$page = min($pages, filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, array(
'options' => array(
'default' => 1,
'min_range' => 1,
),
)));
// Calculate the offset for the query
$offset = ($page - 1) * $limit;
// Some information to display to the user
$start = $offset + 1;
$end = min(($offset + $limit), $total);
// The "back" link
$prevlink = ($page > 1) ? '<a href="?page=1" title="First page">«</a> <a href="?page=' . ($page - 1) . '" title="Previous page">‹</a>' : '<span class="disabled">«</span> <span class="disabled">‹</span>';
// The "forward" link
$nextlink = ($page < $pages) ? '<a href="?page=' . ($page + 1) . '" title="Next page">›</a> <a href="?page=' . $pages . '" title="Last page">»</a>' : '<span class="disabled">›</span> <span class="disabled">»</span>';
// Display the paging information
echo '<div id="paging"><p>', $prevlink, ' Page ', $page, ' of ', $pages, ' pages, displaying ', $start, '-', $end, ' of ', $total, ' results ', $nextlink, ' </p></div>';
// Retrieve the score data from MySQL
$query = "SELECT * FROM questions ORDER BY question_id LIMIT $offset, $limit";
$data = mysqli_query($dbc, $query);
echo "<div class="questions_table">";
if (mysqli_num_rows($data)>0) {
echo "<form method="POST">";
echo "<table>";
echo "<tr><th>Question Type</th><th>Question Text</th><th>option 1</th><th>option 2</th>"
."<th>option 3</th><th>option 4</th><th>Answer</th><th>Delete Question</th></tr>";
// Display the results
$i = 0;
while ($row = mysqli_fetch_array($data)) {
echo "<tr>";
echo '<td>'. $row['question_type']. '</td>';
echo '<td>'. $row['question_text']. '</td>';
echo '<td>'. $row['option1']. '</td>';
echo '<td>'. $row['option2']. '</td>';
echo '<td>'. $row['option3']. '</td>';
echo '<td>'. $row['option4']. '</td>';
echo '<td>'. $row['answer']. '</td>';
echo "<td><button class='ph-button ph-btn-red ph-button-delete' type='submit' value='".$row['question_id']."' name='delete'>Delete</button></td><br>";
echo "</tr>";
}
echo "</table>";
echo "</form>";
echo "</div>";
} else {
echo '<p>There are no questions in the database. Please add them.</p>';
}
} catch (Exception $e) {
echo '<p>', $e->getMessage(), '</p>';
}
?>
它与PHP版本有关吗? 谁能帮我这个?
PHP版本:在我的本地服务器中:5.5.15 web服务器:5.2
提前致谢,
是的,这与您正在运行的PHP版本有关。 数组解引用语法仅在PHP 5.4中有效。 所以,如果你的本地机器安装了5.4,你可以点这个:
$total = $dbc->query(...)->fetch_row()[0];
在之前的PHP版本中,您可以使用相同的结果
list($total) = $dbc->query(...)->fetch_row();
链接地址: http://www.djcxy.com/p/69549.html
上一篇: row()[0], works fine on local server
下一篇: Unexpected '[' error