SQL Server中保存數(shù)據(jù)的一種類型,只能存儲true/false,程序讀取數(shù)據(jù)庫出來之后的表現(xiàn)形式是true或者false,但是保存在數(shù)據(jù)庫中的結(jié)構(gòu)類型是0或者1,1表示true,0表示false。

創(chuàng)新互聯(lián)主要從事做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鶴壁,十多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
SQL Server BIT類型由于只有0和1或者說false和true,這種情況只需要一個Bit位就可以表示了。SQL Server BIT類型占用的空間與BIT類型的列所在表的位置有關(guān),有些情況下BIT占用了一個字節(jié),有些情況下BIT實際占用了幾個位(幾個BIT類型的列共用一個字節(jié))。
單獨的BIT類型的列將占用一個字節(jié)。
所謂單獨就是指一個BIT類型的列的左邊定長列和右邊定長列都不是BIT類型的列。例如這樣一個表:
CREATE TABLE tt
(
c1 INT PRIMARY KEY,
c2 BIT NOT NULL,
c3 CHAR(2)
NOT NULL
)
SQL Server在存儲表中的數(shù)據(jù)時先是將表中的列按照原有順序分為定長和變長(變長就是長度不固定的數(shù)據(jù)類型,如varchar,nvarchar,varbinary等)兩組。在數(shù)據(jù)頁中存儲數(shù)據(jù)時先存儲所有定長的數(shù)據(jù),然后再存儲變長的數(shù)據(jù)。這里由于c2列的左邊是int類型,右邊是char類型,都是定長的,而且不是SQL Server BIT類型,所以c1和c3之間必須留出一個字節(jié)來存儲c2,雖然c2只用到了其中的一個位。
多個BIT類型的列之間使用變長數(shù)據(jù)類型列分開,則去掉變長列,然后看連續(xù)的SQL Server BIT類型列的個數(shù),每列占用一個位,如果多余了8列那就再占用更多的字節(jié)。
Bit 數(shù)據(jù)類型在 SQL Server 數(shù)據(jù)庫中以存儲 1、0 進行存儲。
往數(shù)據(jù)庫中添加,修改 bit 類型的字段時,只能用 0 或者 1。
關(guān)于修改 Bit 類型的字段
1.若使用 SQL 語句在查詢分析器中進行修改,需要傳入 1、0;
在SQL語句中也只能用 0 或者 1,比如 "where sex=1" 不能用 "where sex=TURE"。
2.若使用企業(yè)管理器直接在表中進行修改,需要使用 True、False;
使用 SqlDataReader 讀出的 Bit 類型數(shù)據(jù)返回值為 bool 類型,若將返回結(jié)果關(guān)聯(lián)到 GridView 中,那么此列下呈現(xiàn)的是復(fù)選框,復(fù)選框的 Checked 屬性綁定 Bit 類型字段的返回值。
MySQL中,BLOB是個類型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,這幾個類型之間的唯一區(qū)別是在存儲文件的最大大小上不同。
MySQL的四種BLOB類型
TinyBlob: 最大 255字節(jié)
Blob: 最大 65K
MediumBlob:最大 16M
LongBlob: 最大 4G
注意:如果你存儲的文件過大,數(shù)據(jù)庫的性能會下降很多。
2、PHP操作BLOB案例
?php
mysql_connect( "localhost", "root", "password"); //連接數(shù)據(jù)庫
mysql_select_db( "database"); //選定數(shù)據(jù)庫
//數(shù)據(jù)插入:
$CONTENT="測試內(nèi)容"; //$CONTENT為新聞內(nèi)容
$COMPRESS_CONTENT = bin2hex(gzcompress($CONTENT));
$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//數(shù)據(jù)插入到數(shù)據(jù)庫news表中
//展示:
$query = "select data from testtable where filename=$filename";
$result = mysql_query($query);
$COMPRESS_CONTENT=@gzuncompress($result["COMPRESS_CONTENT"]);
echo $COMPRESS_CONTENT;
?
[2]存儲圖片
?php
mysql_connect( "localhost", "root", "password"); //連接數(shù)據(jù)庫
mysql_select_db( "database"); //選定數(shù)據(jù)庫
//存儲:
$filename="" //這里填入圖片路徑
$COMPRESS_CONTENT = addslashes(fread(fopen($filename, "r"), filesize($filename)));//打開文件并規(guī)范化數(shù)據(jù)存入變量$data中
$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//數(shù)據(jù)插入到數(shù)據(jù)庫test表中
//展示:
ob_end_clean();
Header( "Content-type: image/gif");
$query = "select data from testtable where filename=$filename";
$result = mysql_query($query);
echo $result["COMPRESS_CONTENT"];
?
Bit稱為位數(shù)據(jù)類型,其數(shù)據(jù)有兩種取值:0和1,長度為1位。在輸入0以外的其他值時,系統(tǒng)均把它們當(dāng)1看待。這種數(shù)據(jù)類型常作為邏輯變量使用,用來表示真、假或是、否等二值選擇。
SQL Server中保存數(shù)據(jù)的一種類型,只能存儲true/false,程序讀取數(shù)據(jù)庫出來之后的表現(xiàn)形式是true或者false,但是保存在數(shù)據(jù)庫中的結(jié)構(gòu)類型是0或者1,1表示true,0表示false。
SQL Server
BIT類型由于只有0和1或者說false和true,這種情況只需要一個Bit位就可以表示了。SQL Server
BIT類型占用的空間與BIT類型的列所在表的位置有關(guān),有些情況下BIT占用了一個字節(jié),有些情況下BIT實際占用了幾個位(幾個BIT類型的列共用一
個字節(jié))。
echo就可以的。
if($rs-bit?==?chr(0))
{
echo?'0';
}
else
{
echo?'1';
}
可能,操作系統(tǒng)不一樣也出現(xiàn)這種情況,你試試在select 時用 select bitField+0 from table ,我的問題是這樣解決的
分享標(biāo)題:php讀取bit類型數(shù)據(jù),php獲取數(shù)據(jù)類型
本文路徑:http://chinadenli.net/article43/dseshes.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、手機網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司、自適應(yīng)網(wǎng)站、企業(yè)建站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)