2015-07-22 52 views
0
<?php 
mysql_connect("mysql6.000webhost.com","a6124751_murali1","***"); 
$db= mysql_select_db("a6124751_signup"); 
$topic=$_GET["Topic"]; 
$question=$_GET["Question"]; 
$company =$_GET["Company"]; 
$query = "INSERT INTO questions (topic, question, company) VALUES ($topic, $question, $company)"; 
$sql1=mysql_query($query); 
if (!$sql1) { 
die('Invalid query: ' . mysql_error()); 
} 
?> 

這是我在服務器的php代碼,其中有一個名爲'questions'的表,我試圖從GET中獲取的輸入中插入數據方法使用前端形式,我可以找出數據來自客戶端,我已經使用回聲檢查。我得到一個錯誤,因爲無效查詢:您的SQL語法中有錯誤

您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的正確語法手冊第1行

「的名稱,在這裏輸入您的問題,公司)」不知道是什麼在查詢中的錯誤。任何人都會盡快找到答案。謝謝

+0

運行來自請求變量的unsanitized查詢的不好主意! –

+0

你編輯Mr. Dave –

回答

5

你需要引用你的價值觀

('$topic', '$question', '$company') 

,因爲這些都是字符串。

另外,由於幾個原因,您應該轉義您的數據。不要讓MySQL抱怨某些字符,如連字符等,並防止SQL注入。

使用準備的語句:

參考(S):


編輯:

由於使用目前的MySQL API的例子:

$topic = mysql_real_escape_string($_GET['topic']); 
$question = mysql_real_escape_string($_GET['question']); 
$company = mysql_real_escape_string($_GET['company']); 

我不知道你的輸入被稱爲什麼,所以這只是一個例子。

您提到過使用$_GET進行調試,但使用POST方法。

  • 將上述所有$_GET更改爲$_POST
+0

是的,我應該隱藏數據,但爲了調試我正在使用GET方法。有沒有其他辦法讓我知道如果我使用post方法 –

+0

@MuraliKrish,如果您使用POST方法,然後將所有'$ _GET'更改爲'$ _POST',會發生什麼數據。 –

+0

@DaveChen感謝您輸入Dave。編輯:您刪除了您的評論。 –

0

你必須把這些值在單qoutes,如果是字符類型:

$query = "INSERT INTO questions (topic, question, company) VALUES ('$topic', '$question', '$company')"; 

但你不應該再使用過時mysql_* API。使用mysqli_*或帶準備好的語句的PDO。

1

試試這個

<?php 
$db = mysqli_connect('mysql6.000webhost.com', 'a6124751_murali1', '[email protected]', 'a6124751_signup'); 

if (!$db) { 
    die('Connect Error (' . mysqli_connect_errno() . ') ' 
      . mysqli_connect_error()); 
} 

$topic = $_GET["Topic"]; 
$question = $_GET["Question"]; 
$company = $_GET["Company"]; 

$query = "INSERT INTO questions (topic, question, company) VALUES ('$topic', '$question', '$company')"; 
$sql1=mysqli_query($db, $query); 
if(!$sql1) 
{ 
    die('Invalid query: ' . mysqli_error($db)); 
} 
?> 

修復代碼中的

  • MySQL擴展已被棄用,並將在未來被刪除: 使用的mysqli或PDO來代替

  • 您需要引用你的價值('$topic', '$question', '$company')

相關問題