2014-10-29 56 views
-2

我想做一個ajax調用,傳遞一個整數'mySensor'作爲參數。調用的PHP文件包含以下代碼:如何從ajax調用返回一個字符串?

<?php 

$con = mysql_connect(...) or die('connection not made'); 
$db = mysql_select_db('...', $con) or die('db not selected'); 

$mySensor = mysql_escape_string($_POST["mySensor"]); 
$query = "SELECT Unit FROM sensors WHERE SensorID = ".$mySensor; 
$result = mysql_query($query, $con) or die('query not made'); 

echo $result; 

?> 

所以,從表中sensors我想要得到的Unit(這是一個字符串)元素與SensorID=mySensor(只有一個這樣的元素)。迴應$result不起作用。如何將該單元(也是字符串)返回給我的js腳本?

謝謝!

+0

,或者只是香草的JavaScript? – jboneca 2014-10-29 22:35:26

+0

**危險**:您正在使用[an **過時的**數據庫API](http://stackoverflow.com/q/12859942/19068),並應使用[現代替換](http:// php。淨/手動/ EN/mysqlinfo.api.choosing.php)。你也很容易受到[SQL注入攻擊](http://bobby-tables.com/)**('mysql_escape_string'從來就不夠充分),現代的API會使[防禦](http:自己從。 – Quentin 2014-10-29 22:37:51

+0

@jboneca,他問如何做服務器端的東西。 – 2014-10-29 22:38:05

回答

0

你仍然需要獲取該查詢即結果:

$result = mysql_query($query, $con) or die('query not made'); 
$array = mysql_fetch_assoc($result); 
echo $array['Unit']; 

另一件事是,mysql_escape_string(),在那裏,除非你已經使用該名稱聲明一個函數,那麼它是不是實際mysql_real_escape_string庫函數

$mySensor = mysql_real_escape_string($_POST["mySensor"]); 

重要:您正在使用an obsolete database API並應使用現代化的替代品。你也容易受到SQL注入式攻擊mysql_escape_string從未足夠了),一個現代化的API將您正在使用的庫(例如,jQuery的,MooTools的),使其更容易defend自己從

+3

不應該是'echo $ array ['Unit'];'? – developerwjk 2014-10-29 22:40:20

+0

是的,現在修復,謝謝。 – Kypros 2014-10-29 22:42:09

相關問題