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

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

如何使用PDO從MySQL獲取數(shù)字類型?

如何使用PDO從MySQL獲取數(shù)字類型?

手掌心 2019-07-06 17:51:04
如何使用PDO從MySQL獲取數(shù)字類型?我使用PDO和MySQL,因?yàn)槟承┰?,?dāng)從數(shù)據(jù)庫中獲得int類型的值時,PDOStatement返回的是數(shù)字的字符串表示,而不是數(shù)值類型的值。我怎樣才能防止這種情況發(fā)生?我注意到PDO類有一個屬性:PDO::ATTR_STRINGIFY_FETCHES這應(yīng)該是為了解決這個問題,但是當(dāng)試圖修改它時,它會拋出一個錯誤,說明該屬性對MySQL驅(qū)動程序無效。在查詢數(shù)據(jù)庫時,獲取字符串而不是數(shù)字是正常的嗎?
查看完整描述

3 回答

?
拉風(fēng)的咖菲貓

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

我認(rèn)為在PHP5.2中沒有“數(shù)字”:-(

在PHP5.3中,如果我記得正確的話,當(dāng)您使用新的(新的如PHP>=5.3)MySQLNd (MySQL本機(jī)驅(qū)動程序)司機(jī)。

嗯,在我的書簽上翻閱了更多之后,我找到了這篇關(guān)于mysqlnd的文章:PDO_MYSQLND: The new features of PDO_MYSQL in PHP 5.3

它說(引用):

利用mysqlnd進(jìn)行PDO的優(yōu)勢

當(dāng)使用服務(wù)器端準(zhǔn)備語句時,mysqlnd返回本機(jī)數(shù)據(jù)類型,例如,int列作為整數(shù)變量返回,而不是作為字符串返回。這意味著內(nèi)部數(shù)據(jù)轉(zhuǎn)換減少。

但這只是PHP5.3(前提是您的PHP5.3版本是用mysqlnd編譯的)(而不是舊的libmysql)),而且似乎只適用于準(zhǔn)備好的陳述:-(

對不起.。

一個解決方案是在php端建立一個映射系統(tǒng)。(就像一個ORM-看學(xué)說作為ORM的一個例子:我不知道它是否符合你的要求)要將來自DB的結(jié)果轉(zhuǎn)換為PHP數(shù)據(jù)類型.

是的,如果你想使用像這樣的運(yùn)算符,這是很糟糕的。===!==對類型敏感的.


查看完整回答
反對 回復(fù) 2019-07-06
?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個贊

首先回答你的最后一個問題,“是的”,不幸的是,接收數(shù)字作為字符串是正常的。正如Pascal引用的手冊所述,mysqlnd(PHP5.3)將從準(zhǔn)備好的語句中返回本機(jī)數(shù)據(jù)類型,前提是關(guān)閉PDO的準(zhǔn)備語句模擬。

new PDO($dsn, $user, $pass, array(
    PDO::ATTR_EMULATE_PREPARES => false))

PDO:ATTR_STRINGIFY_FETCH與MySQL無關(guān)。

如果你看到好的一面,最好還是使用預(yù)先準(zhǔn)備好的陳述,所以.;)


查看完整回答
反對 回復(fù) 2019-07-06
  • 3 回答
  • 0 關(guān)注
  • 654 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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