2016-08-31 89 views
-3

我需要查詢的結果表保存到PHP中的數組變種,所以我可以用它自由以後的查詢,如何將mysql查詢結果表保存到php數組中?

你可能會問,爲什麼不讓我做的一切在一個查詢中,我更喜歡它這種方式,因爲它會更清楚地安排在我的腳本中的東西,因爲這將是非常複雜的混合查詢,但當然,如果我找不到解決方案,我會盡力去做,但讓我們先尋求更簡單的方法。

以下是我迄今所做的:

$pdo = Database::connect(); 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $sql = "SELECT * FROM image where ImageFolder not like 'Profile%' order by ImgTimeStamp asc LIMIT 10"; 
    $i = 0; //to use later in loops. 
    $imgdata = array(); 
    foreach ($pdo->query($sql) as $row) 
    { 
     $imgdata[][] = array("ImageID"=>$row['ImageID'],"ImageFolder"=>$row['ImageFolder'],"ImageExtention"=>$row['ImageExtention'],"ImageDescription"=>$row['ImageDescription'],"UserID"=>$row['UserID'],"RatesNumber"=>$row['RatesNumber'],"SumRates"=>$row['SumRates'],"ImgTimeStamp"=>$row['ImgTimeStamp'],"Tags"=>$row['Tags']); 
    } 
    Database::disconnect(); 

然而,當我嘗試使用數組與此代碼$imgdata[$i]['UserID']它給了我這些錯誤: Notice: Undefined index: UserID in C:\wamp\www\DrawingArt\Accueil.php on line 34

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound' in C:\wamp\www\DrawingArt\Accueil.php on line 34

PDOException: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in C:\wamp\www\DrawingArt\Accueil.php on line 34

+0

您在這裏沒有使用任何偏移量來獲得__Undefined offset__錯誤。很明顯,這不是導致該錯誤的代碼。 – Sherif

+0

這是很好的你打開異常,因爲現在你知道有一個錯誤。問題是你不知道它從哪裏來,但是可以修復。深入挖掘。 – tadman

+0

@Sherif是的,我只是coppied最後的錯誤信息,我沒有改變'用戶ID'4,看看它是否不接受它作爲一個字符串,它必須是索引,但後我有同樣的錯誤,我張貼在這裏,我注意到它立即但從此失去了互聯網連接,這就是爲什麼我沒有早先修復! –

回答

1

當您不指定分配給arr的密鑰ay,PHP會根據下一個可用的最高整數鍵值爲您分配一個。每次將賦值中的方括號[]添加到數組中時,都會推送到該數組中的另一個維度。

所以這個代碼...

$arr[][] = ["UserID" => "foo"]; 

var_dump($arr); 

給你...

 
    [0]=> 
    array(1) { 
    [0]=> 
    array(1) { 
     ["UserID"]=> 
     string(3) "foo" 
    } 
    } 
} 

公告訪問值"foo"在這裏你需要$arr[0][0]["UserID"]而不是$arr[0]["UserID"]。如果你想要後者而不是前者,那麼在你的循環中賦值時,可以使用$arr[] = ["UserID" => "foo"]

+0

乾杯,工作,現在一切使用$ imgdata工作。 (固定剩下一個)非常感謝你:D –

相關問題