我想做一個PHP查詢到PostgreSQL數據庫。我測試了服務器中的查詢並返回,但是當我在php中嘗試它時:PostgreSQL的查詢工作,但不是與PHP
<?php
//Check the input
if (!isset($_POST['variable']))
echo "Address not selected";
$input = $_POST['variable'];
//$input = ucfirst(trim($_POST['variable']));
//echo $input;
$conn = pg_connect("host=localhost port=5432 dbname=geocoder user=postgres");
if (!$conn)
echo "Could not connect to server..";
$sql = "SELECT (addy).stateabbrev FROM geocode($input);";
$result = pg_query($conn, $sql);
if (!$result)
echo "Query did not executed..";
?>
我得到那個「查詢未執行..」;
QUERY的字符串取自使用javascript的html頁面。
在Apache2中的error.log中我得到:
PHP Warning: pg_query(): Query failed: ERROR: syntax error at or near "Penn"\nLINE 1: SELECT (addy).stateabbrev FROM geocode(O
什麼可以點這裏?
您應該在SQL中使用佔位符而不是插值,並且您應該驗證/消毒輸入。 –
您正在經歷SQL注入。現在和第一次瞭解:http://bobby-tables.com/ – hakre
可能的重複[防止PHP中的SQL注入](http://stackoverflow.com/questions/6725520/preventing-sql-injection-in-php ) – hakre