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

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

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

?>

输出:

您的 SQL 语法有错误;检查与您的 //MySQL 服务器版本相对应的手册,以在第 1 行的“8”附近使用正确的语法

我知道我的错误在于?id='$id'但我不明白,我的问题是:为什么显示输出:您的 SQL 语法有错误?...

顺便说一下,顾名思义,mysqlconnect.php 是一个连接脚本,而 $id 是从另一个页面的发布请求中获取的。settings_pay_roll.allowance.general.view.php 是一个空脚本,它们都没有错误

4

3 回答 3

2

因为当你的 header 函数被调用时,PHP 引擎已经开始在 settings_pay_roll.allowance.general.view.php 页面上执行代码,并且在该页面上存在 SQL 错误,所以它显示 SQL 错误。

请注意,此处的标头函数没有错误,因为您使用的语法完全有效,但在逻辑上可能不正确。因此,由于使用了单引号,下一页没有获得所需的 id 值,因此产生了 SQL 错误。

希望这可以澄清事情。

于 2013-05-07T10:21:45.427 回答
1

你不需要撇号。

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

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

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

使用您的代码,$_GET['id']将在某个地方获取string(3) '8'并尝试在您的 SQL 中使用它。

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

于 2013-05-07T10:22:02.027 回答
0

你不需要连接数据库

<?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';
}
?>
于 2013-05-07T10:23:51.970 回答