我正在尝试编写一个脚本,该脚本根据我数据库中条目的id从sql server获取数据。当我尝试使用条目id
的链接访问页面时,它返回,就好像它不能识别id一样。下面是php代码:
<?php
require('includes/config.inc.php');
require_once(MYSQL);
$aid = FALSE;
if (isset($_GET['aid']) && filter_var($_GET['aid'], FILTER_VALIDATE_INT, array('min_range' => 1)) ) {
$aid = $_GET['aid'];
$q = "SELECT aircraft_id, aircraft_name AS name, aircraft_type AS type, tail_number AS tn FROM aircraft USING(aircraft_id) WHERE aircraft_id = $aid";
$r = mysqli_query($dbc, $q);
if (!(mysqli_num_rows($r) > 0)) {
$aid = FALSE;
}
}// end isset tid
if ($aid) {
while ($acdata = mysqli_fetch_array($r, MYSQLI_ASSOC)){
echo'<h2>'. $acdata['tail_number'] .'</h2>';
}
} else {
echo '<p>This pages was accessed in error.</p>';
}
?>
任何提示?
答案 0 :(得分:1)
在var_dump($q);
之前尝试$r = mysqli_query($dbc, $q);
检查您的查询,然后直接通过phphmyadmin或MySQL服务器终端执行它,看看它返回了什么。
<强>更新强>
使用var_dump($q);die();
在转储后停止执行脚本。
答案 1 :(得分:0)
您在查询中使用了字段别名,因此必须在echo中使用它:
echo'<h2>'. $acdata['tn'] .'</h2>';
答案 2 :(得分:0)
摆脱USING(aircraft_id)
,它会导致错误,并且您的查询不会执行。
"SELECT aircraft_id, aircraft_name AS name, aircraft_type AS type, tail_number AS tn FROM aircraft WHERE aircraft_id = $aid"
我猜这是以前版本的查询的剩余部分? Using (id)
是
FROM
foo
INNER JOIN bar ON foo.id = bar.id
当要连接的表在具有相同名称的列上连接时,可以使用它。写得更短。
由于您没有加入,您必须将其删除。