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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

通過準(zhǔn)備好的語句使用INSERT INTO進(jìn)行PDO

通過準(zhǔn)備好的語句使用INSERT INTO進(jìn)行PDO

慕婉清6462132 2019-10-30 10:50:29
在穿越PHP:數(shù)據(jù)對(duì)象的叢林中,我遇到了通過準(zhǔn)備好的語句執(zhí)行MySQL查詢的問題。觀察以下代碼:$dbhost = "localhost";$dbname = "pdo";$dbusername = "root";$dbpassword = "845625";$link = new PDO("mysql:host=$dbhost;dbname=$dbname","$dbusername","$dbpassword");$statement = $link->prepare("INSERT INTO testtable(name, lastname, age)        VALUES('Bob','Desaunois','18')");    $statement->execute();這就是我,我想進(jìn)入我的數(shù)據(jù)庫。但是我一直迷路在..好吧..我不知道!根據(jù)谷歌,這是做到這一點(diǎn)的方法,盡管我的數(shù)據(jù)庫仍然是空的。我在這里想念什么嗎?因?yàn)槲乙呀?jīng)被困了一個(gè)小時(shí),所以我想繼續(xù)學(xué)習(xí)PDO!
查看完整描述

3 回答

?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

你應(yīng)該像這樣使用它


<?php

$dbhost = 'localhost';

$dbname = 'pdo';

$dbusername = 'root';

$dbpassword = '845625';


$link = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);


$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)

    VALUES (:fname, :sname, :age)');


$statement->execute([

    'fname' => 'Bob',

    'sname' => 'Desaunois',

    'age' => '18',

]);

準(zhǔn)備的語句用于清理輸入,并且您可以在SQL中使用這些語句:foo 而無需任何單引號(hào)來綁定變量,然后在execute()函數(shù)中傳遞在SQL語句中定義的變量的關(guān)聯(lián)數(shù)組。


您也可以使用?代替,:foo然后像這樣傳遞僅輸入值的數(shù)組;


$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)

    VALUES (?, ?, ?)');


$statement->execute(['Bob', 'Desaunois', '18']);

兩種方式都有其優(yōu)點(diǎn)和缺點(diǎn)。我個(gè)人更喜歡綁定參數(shù)名稱,因?yàn)樗子陂喿x。


查看完整回答
反對(duì) 回復(fù) 2019-10-30
?
森欄

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊

我剛剛將代碼重寫為以下代碼:


    $dbhost = "localhost";

    $dbname = "pdo";

    $dbusername = "root";

    $dbpassword = "845625";


    $link = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);

    $link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


    $statement = $link->prepare("INSERT INTO testtable(name, lastname, age)

        VALUES(?,?,?)");


    $statement->execute(array("Bob","Desaunois",18));

它現(xiàn)在似乎可以正常工作。但。如果我故意造成錯(cuò)誤發(fā)生,則表示沒有錯(cuò)誤。該代碼有效,但仍然有效;如果我遇到更多錯(cuò)誤,我將不知道為什么。


查看完整回答
反對(duì) 回復(fù) 2019-10-30
?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊

請(qǐng)?jiān)诖a中也添加try catch,以確保沒有例外。


try {

    $hostname = "servername";

    $dbname = "dbname";

    $username = "username";

    $pw = "password";

    $pdo = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw");

  } catch (PDOException $e) {

    echo "Failed to get DB handle: " . $e->getMessage() . "\n";

    exit;

  }


查看完整回答
反對(duì) 回復(fù) 2019-10-30
  • 3 回答
  • 0 關(guān)注
  • 982 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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