2013-05-07 17 views
-4
<?php 
include_once('mysqlconnect.php'); 

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

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

?> 

輸出:爲什麼顯示SQL錯誤header()函數

您的SQL語法錯誤;檢查對應於你// MySQL服務器版本使用附近的正確語法手冊「8」「」在1號線

我知道我的錯誤是在?id='$id'但我不明白,我的問題是:爲什麼它顯示輸出:你的SQL語法有錯誤嗎?...

通過這種方式mysqlconnect.php顧名思義是一個連接腳本和$ id是從一個發佈請求另一頁。 settings_pay_roll.allowance.general.view.php是一個空腳本,它們都是無錯的

+0

在settings_pay_roll.allowance.general.view.php會發生什麼? – RMcLeod 2013-05-07 10:18:41

+0

Shiow「settings_pay_roll.allowance.general.view.php」的代碼 – 2013-05-07 10:18:44

+3

可能你想檢查'mysqlconnect.php'文件行內部:8。 – Rikesh 2013-05-07 10:19:29

回答

2

因爲當你的頭函數被調用時,PHP引擎已經開始在settings_pay_roll.allowance.general.view.php頁面上執行代碼該頁面的SQL錯誤在那裏,所以它顯示SQL錯誤。

請注意,這裏的標題函數沒有錯誤,因爲您使用的語法是完全有效的,但在邏輯上可能不正確。所以下一頁沒有得到所需的id值,因爲使用了單引號,因此生成了SQL錯誤。

希望澄清這些事情。

+0

問題在這裏include_once('mysqlconnect。 php');標題功能將簡單地重定向到提供的任何網址。 – 2013-05-07 10:27:44

+0

@WaqarAlamgir這更多的是基於經驗猜測,因爲我們沒有看到兩個頁面mysqlconnect.php和view.php的代碼。 – Minesh 2013-05-07 10:30:45

+0

頭文件函數在生成預生成頭文件時停止執行,將一些html /字符串生成文本/ html頭文件。在這種情況下,include_once('mysqlconnect.php');正在生成一些html。 – 2013-05-07 10:33:21

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變量而不是獲取變量。

+0

沒有sql語句...... – 2013-06-10 13:38:15

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'; 
} 
?>