2010-09-11 31 views
0

在我的第一個PHP站點(我主要是一個ASP程序員)上工作,我需要將querystring變量轉換爲一個數字,然後我可以使用它來查詢數據庫。什麼是最好的方式來轉換爲一個可用的int(我已經嘗試intval(),但我一直得到0結果),並驗證它(也沒有單引號,等等)在PHP中?在PHP中將查詢字符串轉換爲int

+0

我不,我已經在使用這些理解 – Svisstack 2010-09-11 00:28:09

回答

1

PHP允許類型比ASP更靈活,並且會自動在不同類型之間進行轉換。

,以確保您的SQL一些最好的方法是使用sprintf(),例如:

$sql = "SELECT name FROM users WHERE id = ".sprintf("%d", $_POST['userid']) ; 

當插入由GET或POST發送字符串到SQL,你應該使用mysql_real_escape_string()(假設你的SQL是去到MySQL)逃避任何東西需要轉義,所以:

$sql = "SELECT id FROM users where name = ".sprintf("'%s'", mysql_real_escape_string($_GET['username'])) ; 
+0

如果在查詢字符串中顯示字符串「hello」而不是數字,sprintf()會執行什麼操作? – MarathonStudios 2010-09-11 00:37:00

+0

@MarathonStudios:'0' – 2010-09-11 00:43:10

+0

非常好,謝謝! – MarathonStudios 2010-09-11 00:47:06

0

你可能嘗試讀取PHP腳本的輸入參數 - 我會建議使用

$_POST $_GET 

陣列,因爲它們持有的所有已解析這些信息。

+0

,我只需要確認輸入的是一個數字之前,我把它添加到我的SQL查詢。 – MarathonStudios 2010-09-11 00:41:49