Как вставить данные в массив в PHP подготовить устав? - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь вставить данные в массив, прежде чем использовать его с помощью оператора подготовить pdo.

Вот что я сделал:

$stmt = $pdo->prepare("SELECT * FROM settings"); 
$stmt->execute(array());
$row = $stmt->fetch(PDO::FETCH_ASSOC);
                    htmlspecialchars($row['site_name']);
                    htmlspecialchars($row['site_desc']);
                    htmlspecialchars($row['site_url']);
unset($stmt);

Usaqe:

$row['site_name'];

Работает нормально, но я чувствую, что мне не хватает важной вещи.

Вот мой вопрос: нужно ли объявлять все значения в $stmt->execute(array()); Примерно так: $stmt->execute(array(':site_name'=>$site_name, ':site_name'=>$site_name,)); перед его использованием?

А как это сделать?

 $a['site_name'] = htmlspecialchars($row['site_name']);
 $a['site_desc'] = htmlspecialchars($row['site_desc']);
 $a['site_url'] = htmlspecialchars($row['site_url']);

Использование:

$a['site_name'];

Я написал видео и учебные пособия, но не смог заставить работать второй пример.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

используйте $stmt->fetchAll(PDO::FETCH_ASSOC)) с ответом Раима

0 голосов
/ 22 мая 2018

Поскольку не используются переменные (обычно вводимые пользователем), строго не нужно использовать prepared statement, поэтому вы можете просто использовать обычный метод query.

$a=array();

$sql = 'select * from `settings`;';
$res = $pdo->query( $sql );
if( $res ){
    while( $rs=$pdo->fetch( PDO::FETCH_OBJ ) ){
        $a['site_name']=$rs->site_name;
        $a['site_desc']=$rs->site_desc;
        $a['site_url']=$rs->site_url;
    }
}

Если выВ запросе есть несколько дополнительных параметров (обычно это предложение where), вы, вероятно, захотите использовать prepared statement, и именно здесь вы определите placeholder, а затем назначите ему значение для использования в * 1009.* метод

$sql='select * from `settings` where `site_name`=:site_name;';
$params=array(':site_name'=>'example.com');
$stmt=$pdo->prepare( $sql );
if( $stmt ){
    $res=$pdo->execute( $params );
    if( $res ){
        while( $rs=$stmt->fetch( PDO::FETCH_OBJ ) ){
            $a['site_name']=$rs->site_name;
            $a['site_desc']=$rs->site_desc;
            $a['site_url']=$rs->site_url;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...