第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用PDO在PHP中獲取結(jié)果數(shù)組?

如何使用PDO在PHP中獲取結(jié)果數(shù)組?

絕地?zé)o雙 2019-10-11 14:38:18
閱讀完SQL注入攻擊后,我只是在編輯搜索腳本。我正在嘗試使用PDO而不是常規(guī)的mysql連接從腳本中獲得相同的功能。因此,我一直在閱讀有關(guān)PDO的其他文章,但不確定。這兩個腳本會提供相同的功能嗎?使用PDO:$pdo = new PDO('mysql:host=$host; dbname=$database;', $user, $pass);$stmt = $pdo->prepare('SELECT * FROM auction WHERE name = :name');$stmt->bindParam(':name', $_GET['searchdivebay']);$stmt->execute(array(':name' => $name);使用常規(guī)mysql:$dbhost = @mysql_connect($host, $user, $pass) or die('Unable to connect to server');@mysql_select_db('divebay') or die('Unable to select database');$search = $_GET['searchdivebay'];$query = trim($search);$sql = "SELECT * FROM auction WHERE name LIKE '%" . $query . "%'";if(!isset($query)){echo 'Your search was invalid';exit;} //line 18$result = mysql_query($trim);$numrows = mysql_num_rows($result);mysql_close($dbhost);我繼續(xù)使用常規(guī)示例while($i < $numrows){$row = mysql_fetch_array($result);從數(shù)據(jù)庫創(chuàng)建匹配結(jié)果數(shù)組。我該如何使用PDO?
查看完整描述

3 回答

?
慕田峪7331174

TA貢獻1828條經(jīng)驗 獲得超13個贊

看一下PDOStatement.fetchAll方法。您也可以fetch在迭代器模式中使用。


fetchAll來自PHP文檔的的代碼示例:


<?php

$sth = $dbh->prepare("SELECT name, colour FROM fruit");

$sth->execute();


/* Fetch all of the remaining rows in the result set */

print("Fetch all of the remaining rows in the result set:\n");

$result = $sth->fetchAll(\PDO::FETCH_ASSOC);

print_r($result);

結(jié)果:


Array

(

    [0] => Array

        (

            [NAME] => pear

            [COLOUR] => green

        )


    [1] => Array

        (

            [NAME] => watermelon

            [COLOUR] => pink

        )

)


查看完整回答
反對 回復(fù) 2019-10-11
?
繁花不似錦

TA貢獻1851條經(jīng)驗 獲得超4個贊

有三種方法來獲取PDO語句返回的多行。


最簡單的方法就是迭代PDOStatement本身:


$stmt = $pdo->prepare("SELECT * FROM auction WHERE name LIKE ?")

$stmt->execute(array("%$query%"));

// iterating over a statement

foreach($stmt as $row) {

    echo $row['name'];

}

另一個是在熟悉的while語句中使用fetch()方法獲取行:


$stmt = $pdo->prepare("SELECT * FROM auction WHERE name LIKE ?")

$stmt->execute(array("%$query%"));

// using while

while($row = $stmt->fetch()) {

    echo $row['name'];

}

但是對于現(xiàn)代Web應(yīng)用程序,我們應(yīng)該將datbase迭代與輸出分開,因此,最方便的方法是使用fetchAll()方法一次獲取所有行:


$stmt = $pdo->prepare("SELECT * FROM auction WHERE name LIKE ?")

$stmt->execute(array("%$query%"));

// fetching rows into array

$data = $stmt->fetchAll();

然后將它們輸出到模板中:


<ul>

<?php foreach($data as $row): ?>

    <li><?=$row['name']?></li>

<?php endforeach ?>

</ul>

請注意,PDO支持許多復(fù)雜的提取模式,從而允許fetchAll()返回許多不同格式的數(shù)據(jù)。


查看完整回答
反對 回復(fù) 2019-10-11
?
素胚勾勒不出你

TA貢獻1827條經(jīng)驗 獲得超9個贊

$st = $data->prepare("SELECT * FROM exampleWHERE example LIKE :search LIMIT 10"); 


查看完整回答
反對 回復(fù) 2019-10-11
  • 3 回答
  • 0 關(guān)注
  • 1359 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號