2013-10-10 91 views
0

目前我正在使用PHP的Postgres。我正在編寫一個用戶可以填寫用戶的界面,以便將其添加到數據庫中用戶的總記錄中。 (很簡單)。pg_query()遇到問題;在PHP

最近我一直有很多麻煩讓查詢工作。逃跑似乎一直都是必需的。雙引號之間的查詢本身已經不夠了。

我在遇到以下查詢時遇到問題;

$query = pg_query($dbconnection,"INSERT INTO clients('clientid', 'name', 'ipaddress',  'status') VALUES ('$clientid', '$name', '$ipaddress', '$status' "); 

這是行不通的。我想還有更多需要逃避的東西。有沒有第三方工具可用來檢查這些postgres語法是否有效?

如果不是,我該如何將這個查詢轉換爲可用的查詢?

回答

3

使用pg_query_params()處理逃逸,並避免SQL注入:

$query = pg_query_params(
    $dbconnection, 
    'INSERT INTO clients(clientid, name, ipaddress,status) VALUES ($1, $2, $3, $4);', // placeholders 
    array($clientid, $name, $ipaddress, $status) // content 
); 
1
Try this 
    $query = pg_query($dbconnection, 
    "INSERT INTO clients(clientid, name, ipaddress,status) VALUES ('$clientid', '$name', '$ipaddress', '$status' "); 
+0

這將有助於說明爲什麼你認爲這將解決這個問題。 – Steve

1
$query = pg_query($dbconnection, "INSERT INTO clients(clientid, name, ipaddress,status) VALUES ('$clientid', '$name', '$ipaddress', '$status')"); 

應該做的工作。請注意0​​之後的字段名稱和右括號處沒有引號。