Изменить функцию PDO

Это утверждение используется в моем api. Это вторая переменная $result во всей функции ниже. Как можно изменить его на использование PDO?

 $result = query("SELECT p.IdPhoto, p.device_token, /*title,*/ p.IdUser FROM photos p JOIN login l ON (l.IdUser = p.IdUser) WHERE p.IdPhoto='%d'", $IdPhoto) ; 

Целая функция

 function stream($IdPhoto=0) { if ($IdPhoto==0) { //Load Photos $result = query("SELECT IdPhoto, device_token, /*title,*/ IdUser FROM photos /*p*/ ORDER BY IdPhoto DESC LIMIT 300 "); } else { //Want this to be PDO :) $result = query("SELECT p.IdPhoto, p.device_token, /*title,*/ p.IdUser FROM photos p JOIN login l ON (l.IdUser = p.IdUser) WHERE p.IdPhoto='%d'", $IdPhoto) ; } 

Будет ли этот код работать вместо второй переменной результата? Моя цель – изменить его на PDO, чтобы он мог масштабироваться более успешно. До сих пор нет выхода.

 $dbh = new PDO('mysql:host=localhost;dbname=pushchat', 'pushchat', 'A very secure password!!!'); $result = $dbh->query("SELECT p.IdPhoto, p.device_token, /*title,*/ p.IdUser FROM photos p JOIN login l ON (l.IdUser = p.IdUser) WHERE p.IdPhoto='%d'", $IdPhoto) ; 

Это мои значения подключения к базе данных

 'host' => 'localhost', 'dbname' => 'pushchat', 'username' => 'pushchat', 'password' => 'A very secure password!!!', 

Обновление файла журнала php

 [08-Apr-2016 03:39:25 Europe/Berlin] PHP Notice: Undefined index: IdPhoto in /Applications/MAMP/htdocs/Hi2/index.php on line 44 

Обновить

Использовал синтаксис PDO в тестовом файле, и браузер вернул строку. Как я могу заставить приложение называть его сейчас через j son?

 <?php $conn = new PDO('mysql:host=localhost;dbname=pushchat', 'pushchat', 'd]682\#%yI1nb3'); function new_function() { echo "hi<br>"; $an_int = 12; // If this is an integer if (is_int($an_int)) { global $conn; $stmt = $conn->prepare("SELECT IdPhoto, device_token, IdUser FROM photos ORDER BY IdPhoto DESC LIMIT 300 "); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); print_r($result); $swag_Bag = 'p.device_token'; print_r($swag_Bag); } } new_function(); ?> 

Обновить

Это приложение называется функцией исходного stream .

 -(void)refreshStream { //The "stream" command from the web API [[API sharedInstance] commandWithParams:[NSMutableDictionary dictionaryWithObjectsAndKeys:@"stream", @"command", nil] onCompletion:^(NSDictionary *json) { //got stream [self showStream:[json objectForKey:@"result"]]; ... }]; } 

Solutions Collecting From Web of "Изменить функцию PDO"

Попробуй это:

 $conn = new PDO('mysql:host=localhost;dbname=dbname', 'root', 'password'); function stream($IdPhoto=0) { global $conn; if ($IdPhoto==0) { // load the last 300 photos $stmt = $conn->prepare("SELECT IdPhoto, device_token, IdUser FROM photos ORDER BY IdPhoto DESC LIMIT 300 "); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); } else { //This is the statement i need to call explicitly via PDO //do the same as above, but just for the photo with the given id $stmt = $conn->prepare("SELECT p.IdPhoto, p.device_token, p.IdUser FROM photos p JOIN login l ON (l.IdUser = p.IdUser) WHERE p.IdPhoto= :idphoto "); $stmt->execute([':idphoto' => $IdPhoto]); $result = $stmt->fetch(PDO::FETCH_ASSOC); } if (!$stmt->errorInfo()[0]) { // if no error occured, print out the JSON data of the // fetched photo data print json_encode($result); } else { //there was an error, print out to the iPhone app errorJson('Photo stream is broken'); } }