Php 请求后回显中显示的值错误
我正试图从一个URL中显示一个团队名称,该URL从我的数据库中提取关于该团队的信息Php 请求后回显中显示的值错误,php,mysql,Php,Mysql,我正试图从一个URL中显示一个团队名称,该URL从我的数据库中提取关于该团队的信息 <? $query = "select * from teams where name='".$mysqli->real_escape_string($_REQUEST['name'])."'"; $result = $mysqli->query( $query ); $row = $result->fetch_assoc(); $id = $row['id']; $name =
<?
$query = "select * from teams where
name='".$mysqli->real_escape_string($_REQUEST['name'])."'";
$result = $mysqli->query( $query );
$row = $result->fetch_assoc();
$id = $row['id'];
$name = $row['name'];
$lon = $row['lon'];
$lat = $row['lat'];
$distance = $row['distance'];
$postcode = $row['postcode'];
$phone = $row['phone'];
?>
它显示的是测试团队B,而不是上面要求的测试团队
我已经在2台电脑上检查过了,只是为了确保我的表格没有问题。我曾经把数据放进数据库,或者是浏览器里的任何值
这是为什么
SQL转储
--
-- Table structure for table `teams`
--
CREATE TABLE IF NOT EXISTS `teams` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`lat` varchar(32) NOT NULL,
`lon` varchar(32) NOT NULL,
`distance` varchar(20) NOT NULL,
`postcode` varchar(20) NOT NULL,
`phone` varchar(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
--
-- Dumping data for table `teams`
--
INSERT INTO `teams` (`id`, `name`, `lat`, `lon`, `distance`, `postcode`, `phone`) VALUES
(1, 'Test TeamA', '52.483038', '0.178962', '12.9', 'PE15 0JJ', ''),
(3, 'Test TeamB', '52.45645', '0.823423', '12', '', '01231223');
对于这样的问题,这不是理想的答案,但请查看我问题下的所有答复 在我的情况下,这是一个错误,在另一页,我是包括在我的网页 我最好的建议是按照尼克松的评论去做
echo $query;
查看正在使用的查询。然后剥离所有页面以消除问题如果您
echo$query,您会看到什么代码>?尝试回显$\u请求['name']
。为什么不使用$\u GET
或$\u POST
,具体取决于表单使用的方法?@Rick Nash为什么该查询没有WHERE
子句?看起来它正在选择所有行,然后您只获取第一行。您可以提供表的转储吗?作为补充,请在与数据库交互时查找PDO并使用准备好的语句。一个被遗忘的mysql\u real\u escape\u字符串
,你的网站就被黑客炸开了。
echo $query;