2014-10-30 105 views
-1

執行的SQL管理器(SQLite的經理)下面的查詢,SQL查詢從PHP VS直接SQL數據庫查詢

SELECT ip FROM objects WHERE name="machine4" 

返回預期值,IP地址=「AAAA :: c30c:0 0:4' 。

執行從PHP代碼如下相同的查詢,

$db=open_database(); 
    $query = $db->exec('SELECT ip FROM objects WHERE name="machine4"'); 
    echo $query; 

回報給值1

有什麼從我關於PHP相識逃跑?

p.s .:我確定查詢無誤地執行,並且它們訪問引用相同元素的同一個數據庫。

+1

它,因爲你不使用某種形式的取環的返回1。或者,我不是在抓這個問題嗎?你在尋找能夠防止注射或者'aaaa :: c30c:0:0:4'的東西?如果它是SQL注入預防,則使用預準備語句。 – 2014-10-30 19:25:55

+0

正在使用哪個數據庫庫?什麼是'$ db'一個mysqli連接對象?我猜,PDO。 – Ray 2014-10-30 19:26:06

+0

閱讀文檔真的很難嗎? – Overv 2014-10-30 19:26:36

回答

0

解決,

首先我需要一個對象來獲取價值,爲此目的執行不會返回一個對象,但數如所提及的那樣排成行。而來自php的query命令有一個提取對象。

這是適用於SQLITE3數據庫查詢的答案:

$db=open_database(); 
$query = $db->query('SELECT ip FROM objects WHERE name="machine4"'); 
if(!$query){ 
    echo $db->lastErrorMsg(); 
} else { 
    $ip=$query->fetchArray(SQLITE3_ASSOC); 
    return $ip['ip'];