2016-10-02 17 views
0

我有以下PHPcode:PHP到C#變量

include 'db.php'; 
$user = $_POST['username']; 
$q = $connection->query('SELECT id FROM myTable WHERE username=".$user."'); 
foreach($q AS $row) { 
echo $row['id']; 
} 

我試圖做一個C#應用程序發佈變量到PHP頁面,然後查詢數據庫,並回聲將被用在串C#應用程序。我的C#代碼如下所示:

public string getId(string url) 
    { 
     string test = "testing123"; 
     NameValueCollection formData = new NameValueCollection(); 
     formData["username"] = test; 
     using (WebClient wc = new WebClient()) 
     { 
      byte[] resp = wc.UploadValues(url, "POST", formData); 
      string responsefromserver = Encoding.UTF8.GetString(resp); 
      wc.Dispose(); 
      Console.WriteLine(responsefromserver); 
      return responsefromserver; 
     } 
    } 

正如你所看到的,我只想寫什麼應用從PHP頁面回來到控制檯,然後再返回,但是當我運行的應用程序,它會返回沒有。至少它似乎。有誰知道爲什麼?對不起,如果這是明顯的,我仍然是整個C#的東西很新。

+0

你在單引號中,所以'username =「。$ user。」'不正確。你也開放SQL注入。應該是'username =''。$ user。'「'...或者反轉引用的用法並去掉''''。 – chris85

+0

Ohhhh ....我知道它必須是這樣的。謝謝一堆! – Alan

+0

請注意SQL注入問題。應該使用參數化查詢。 – chris85

回答

0

$q = $connection->query('SELECT id FROM myTable WHERE username='.$user.';'); 

更換

$q = $connection->query('SELECT id FROM myTable WHERE username=".$user."'); 

,然後再試一次。

作爲最佳實踐,請使用預準備語句來避免SQL注入。