数据未从 Mysql 数据库中检索
Posted
技术标签:
【中文标题】数据未从 Mysql 数据库中检索【英文标题】:Data is not retrieving from Mysql database 【发布时间】:2017-08-02 09:10:20 【问题描述】:这是我的 index.php 文件
我没有从 Mysql 数据库中获取任何数据。页面加载为空,它没有加载或从数据库中获取任何结果。请帮我。谢谢
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="sty.css" />
<link rel="stylesheet" type="text/css" href="css/font-awesome.css" />
</head>
<body>
<div id='data'></div>
</body>
<script src="code.jquery.com/jquery-3.1.1.js"; integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA=" crossorigin="anonymous"></script>
<script type="text/javascript">
$(document).ready(function()
$.ajax(
type: "GET",
url: "get_data.php",
data:
'offset':1,
'limit' :5
,
success: function(data)
$('#data').html(data);
);
);
</script>
</html>
这是我的 get_data.php 文件
<?php
if(isset($_GET['offset']) && isset($_GET['limit']))
$limit = $_GET['limit'];
$offset = $_GET['offset'];
$connection = mysqli_connect('localhost', 'root', '', 'text');
$data = mysqli_query($connection, "SELECT * FROM `text` LIMIT $limit OFFSET $offset");
while($row = mysqli_fetch_array($data))
echo '<div id="post1"><p>'.$row['text'].'</p></div>';
?>
这是我的数据库结构
-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Mar 12, 2017 at 09:08 AM
-- Server version: 10.1.19-MariaDB
-- PHP Version: 7.0.13
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `text`
--
-- --------------------------------------------------------
--
-- Table structure for table `text`
--
CREATE TABLE `text` (
`id` int(11) NOT NULL,
`image` varchar(200) NOT NULL,
`text` longtext NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `text`
--
INSERT INTO `text` (`id`, `image`, `text`) VALUES
(1, '', ''),
(2, '', 'hi'),
(3, '', 'hhh'),
(4, '', 'dgg'),
(5, '', 'hfg'),
(6, '', 'hfg'),
(7, '', 'hhhhh'),
(8, '', 'hi'),
(9, '', '1'),
(10, '', '2'),
(11, '', '3'),
(12, '', '4'),
(13, '', '5'),
(14, '', '4'),
(15, '', '1'),
(16, '', '1'),
(17, '', '3'),
(18, '', '121'),
(19, '', '45457'),
(20, '', 'hh'),
(21, '', '45'),
(22, '', 'fgsgf'),
(23, '', '45454545'),
(24, '', 'jj'),
(25, '', 'fafads'),
(26, '', 'asf'),
(27, '', 'fsdfsfg'),
(28, '', '1'),
(29, '', ''),
(30, '', ''),
(31, '', ''),
(32, '', ''),
(33, '', ''),
(34, '', ''),
(35, '', ''),
(36, '', ''),
(37, '', ''),
(38, '', '');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `text`
--
ALTER TABLE `text`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `text`
--
ALTER TABLE `text`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=39;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
index image
get data image
【问题讨论】:
您是否尝试过从浏览器点击网址。在浏览器http://localhost/... /get_data.php?offset=10&limit=0
中打开 URL 并检查输出是否符合您的要求。这是为了检查您的 php 代码是否有错误
请将ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
添加到两个文件的顶部
尝试查看您的 apache 错误日志
【参考方案1】:
这里试试mysqli错误函数是:
<?php
if(isset($_GET['offset']) && isset($_GET['limit']))
$connection = mysqli_connect('localhost', 'root', '', 'text');
if(isset($_GET["limit"]))
$limit = $_GET['limit'];
else
$limit=5;
if(isset($_GET["offset"]))
$offset = $_GET['offset'];
else
$offset=1;
$data = mysqli_query($connection, "SELECT * FROM `text` LIMIT $limit OFFSET $offset")or die(mysqli_error($connection));
while($row = mysqli_fetch_array($data))
echo '<div id="post1"><p>'.$row['text'].'</p></div>';
?>
如果你的 sql 查询有错误,这会给你一个错误。
【讨论】:
评论不用于扩展讨论;这个对话是moved to chat。【参考方案2】:您得到空白输出,因为没有将 GET 参数发送到 get_data.php。试试这个:
url: "get_data.php?offset=foo&limit=bar",
【讨论】:
ajax获取url中的请求传递参数【参考方案3】:无论何时编码,请始终尝试捕获所有可以捕获的异常。
在您的 ajax 调用中,您没有处理失败案例,因此您无法找到出错的地方。
$.ajax(
type: "GET",
url: "get_data.php",
dataType: 'html',
data:
'offset': 1,
'limit': 5
,
success: function (data)
$('body').append(data);
,
error: function (jqXHR, exception)
var msg = '';
if (jqXHR.status == 404)
msg = 'Requested page not found. [404]';
else if (jqXHR.status == 500)
msg = 'Internal Server Error [500].';
else if (exception === 'parsererror')
msg = 'Requested JSON parse failed.';
else if (exception === 'timeout')
msg = 'Time out error.';
else if (exception === 'abort')
msg = 'Ajax request aborted.';
else
msg = 'Uncaught Error.\n' + jqXHR.responseText;
alert(msg);
);
【讨论】:
以上是关于数据未从 Mysql 数据库中检索的主要内容,如果未能解决你的问题,请参考以下文章
使用 Workbench 从 MSSQL 迁移到 MySQL 时未从源中检索模式列表
$_POST 未从 Javascript 的 Fetch() 中检索数据
前端 (HTML) 未从 Microsoft Azure 中的 mysql 数据库获取 Spring Boot 应用程序中的数据