Php 为什么header()函数显示sql错误

Php 为什么header()函数显示sql错误,php,Php,因为当调用header函数时,PHP引擎已经开始在settings\u pay\u roll.allowment.general.view.PHP页面上执行代码,并且在该页面上存在SQL错误,因此它显示SQL错误 请注意,这里的header函数没有错误,因为您使用的语法完全有效,但逻辑上可能不正确。所以下一页并没有得到所需的id值,因为使用了单引号,所以生成了SQL错误 希望这能澄清问题。你不需要撇号 <?php include_once( 'mysqlconnect.php' ); $

因为当调用header函数时,PHP引擎已经开始在settings\u pay\u roll.allowment.general.view.PHP页面上执行代码,并且在该页面上存在SQL错误,因此它显示SQL错误

请注意,这里的header函数没有错误,因为您使用的语法完全有效,但逻辑上可能不正确。所以下一页并没有得到所需的id值,因为使用了单引号,所以生成了SQL错误


希望这能澄清问题。

你不需要撇号

<?php
include_once( 'mysqlconnect.php' );

$id=$_POST['id']; //line 8

header("location:settings_pay_roll.allowance.general.view.php?id='$id'");

?>

使用您的代码,
$\u GET['id']
将在某处获取
字符串(3)'8'
,并尝试在SQL中使用它


我同意其他一些评论,这是完全可以滥用的。请考虑使用post变量而不是get变量。

您不需要连接数据库

<?php
  include_once( 'mysqlconnect.php' );

  $id=$_POST['id']; //8

  header("location:settings_pay_roll.allowance.general.view.php?id=$id");
?>


settings\u pay\u roll.allowment.general.view.php中发生了什么?show
settings\u pay\u roll.allowment.general.view.php的代码可能是您想查看
mysqlconnect.php
文件行:8。当您需要通过简单的post重定向时,为什么要连接到数据库!完全容易受到攻击,而且您在查询中使用$id在某处获取记录,这导致错误问题出现在这里include_once('mysqlconnect.php');header函数将简单地重定向到提供的任何url。@WaqarAlamgir这更多的是根据经验猜测,因为我们还没有看到mysqlconnect.php和view.php两个页面的代码。header函数在生成预标题时停止执行,放置一些html/字符串将生成文本/html的标题。在本例中,包括_once('mysqlconnect.php');正在生成一些html。我的回答基于用户输入:“我知道我的错误在?id='$id'”,您如何确定mysqlconnect.php正在生成html?include_once('mysqlconnect.php');完全可以…只是一个连接脚本。我已经在其他脚本中使用它。。。究竟需要什么样的视角?这个错误是在这个页面中生成的,不会再进一步移动…但是为了清楚起见,它只是一个空页面
<?php
if(isset($_POST['id']) && is_numeric($_POST['id']))
{
    $id = $_POST['id'];
    header("Location: settings_pay_roll.allowance.general.view.php?id=$id");
}
else
{
    echo 'Post is missing';
}
?>