你的打印是不是編程語言里面說的打印,例如basic語言的print語句,如果是的話,在PHP里面使用echo語句打印內容,例如:
創新互聯公司專注于隆陽企業網站建設,響應式網站開發,商城網站制作。隆陽網站建設公司,為隆陽等地區提供建站服務。全流程定制網站建設,專業設計,全程項目跟蹤,創新互聯公司專業和態度為您提供的服務
echo 'table border=1trtd1td2/table';
如果你是希望程序運行后在打印機上打印輸出內容,那可能比較復雜,而且不是PHP的強項,需要編寫許多查找打印機的代碼,簡單的做法是把數據送我特殊設備,可以使用file_put_contents函數,例如:
file_put_contents('PRN:', 'print test');
thinkphp的sql語句的應用:
[?SQL?]?SHOW?COLUMNS?FROM?`think_action`?[?RunTime:0.001339s?]
[?EXPLAIN?:?array?(?'id'?=?'1',?'select_type'?=?'SIMPLE',?'table'?=?'think_action',?'partitions'
=?NULL,?'type'?=?'ALL',?'possible_keys'?=?NULL,?'key'?=?NULL,?'key_len'?=?NULL,?'ref'
=?NULL,?'rows'?=?'82',?'filtered'?=?'100.00',?'extra'?=?NULL,?)?]
[?SQL?]?SELECT?*?FROM?`think_action`?LIMIT?1?[?RunTime:0.000539s?]
擴展資料:
sql的應用原則:
在關系數據庫實現過程中,第一步是建立關系模式,定義基本表的結構,即該關系模式是哪些屬性組成的,每一屬性的數據類型及數據可能的長度、是否允許為空值以及其它完整性約束條件。
定義基本表:
CREATE TABLE表名(列名1數據類型[列級完整性約束條件]
[,列名2數據類型[列級完整性約束條件]]…
[,-列名n數據類型[列級完整性約束條件]]
[,表列級完整性約束條件]);
說明:
1、中是SQL語句必須定義的部分,[]中是SQL語句可選擇的部分,可以省略的。
2、CREATE TABLE表示是SQL的關鍵字,指示本SQL語句的功能。
3、表名是所要定義的基本表的名稱,一個表可以由一個或若干個屬性(列)組成,但至少有一個屬性,不允許一個屬性都沒有的表,這樣不是空表的含義。多個屬性定義由圓括號指示其邊界,通過逗號把各個屬性定義分隔開,各個屬性名稱互不相同,可以采用任意順序排列,一般按照實體或聯系定義屬性的順序排列,關鍵字屬性組在最前面,這樣容易區分,也防止遺漏定義的屬性。
參考資料來源:百度百科-thinkphp
參考資料來源:百度百科-結構化查詢語言
回調函數。
1.快取一行
FetchColumn是為應用程序取得一個僅包含單列的數據,代碼如下:
$u = $db-query(“SELECT id FROM users WHERE login=
‘login’ AND password=‘password’”);
fetch(PDO::FETCH_COLUMN)
if ($u-fetchColumn()) { //返回一個字符串
//登錄成功
} else {
//驗證失敗
}
?
2.取得一個標準對象
還可以將取得的一行作為一個標準類stdClass的對象實例,其中列名=屬性名。
$res = $db-query(“SELECT * FROM foo”);
while ($obj = $res-fetch(PDO::FETCH_OBJ)) {
// $obj == instance of stdClass
}
?
3.存取為一個類
PDO允許將結果保存為一個類,例子如下:
$res = $db-query(“SELECT * FROM foo”);
$res-setFetchMode(
PDO::FETCH_CLASS,
“className”,
array(‘optional’=‘Constructor Params’)
);
while ($obj = $res-fetch()) {
// $obj == instance of className
}
?
4.從一個類取得常量
PDO允許查詢的結果可以被用來生成一個目的類。
$res = $db-query(“SELECT * FROM foo”);
$res-setFetchMode(
PDO::FETCH_CLASS |
PDO::FETCH_CLASSTYPE
);
while ($obj = $res-fetch()) {
// $obj == instance of class who’s name is
// found in the value of the 1st column
}
?
5.存取為一個對象
PDO還允許獲取數據到一個已經存在的對象。
$u = new userObject;
$res = $db-query(“SELECT * FROM users”);
$res-setFetchMode(PDO::FETCH_INTO, $u);
while ($res-fetch()) {
// 取得的記錄集將放在$u這個對象變量中,在此顯示
}
?
6.存取為關聯數據
PDO實現了迭代器(Iteator)接口,允許一個方法實現迭代的功能。
$res = $db-query(
“SELECT * FROM users”,
PDO::FETCH_ASSOC
);
foreach ($res as $row) {
// $row是一個關聯數組,可以直接顯示,如$row['id']
}
?
7.fetchAll()方法
PDO也提供了和ADODB類似的fetchAll()方法,它允許從一個結果集中取得數據,然后放于關聯數組中。
$db-setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
$qry = “SELECT * FROM users”;
$res = $db-query($qry)-fetchAll(PDO::FETCH_ASSOC);
?
或者獲取到索引數組里:
$res = $db-query("SELECT * FROM foo");
$result_arr = $res-fetchAll();
print_r($result_arr);
?
數字索引數組比較浪費資源,請盡量使用關聯數組,這樣可以在內存中使用相當密集的大型結果集。
相關說明如下:
setAttribute()方法用于設置部分屬性,主要屬性有:PDO::ATTR_CASE、PDO::ATTR_ERRMODE等,這里需要設置的是PDO::ATTR_CASE,就是使用關聯索引獲取數據集時,關聯索引是大寫還是小寫,有如下幾個選擇:
PDO::CASE_LOWER——強制列名是小寫;
PDO::CASE_NATURAL——列名按照原始的方式;
PDO::CASE_UPPER——強制列名為大寫。
我們使用setFetchMode方法來設置獲取結果集的返回值的數據類型,類型有:
PDO::FETCH_ASSOC——關聯數組形式;
PDO::FETCH_NUM——數字索引數組形式;
PDO::FETCH_BOTH——兩種數組形式都有,這是默認的;
PDO::FETCH_OBJ——按照對象的形式,類似于以前的 mysql_fetch_object()。
當然,一般情況下,我們使用PDO::FETCH_ASSOC取得關聯數組。具體使用哪種類型,應按照自己的實際應用選擇。
8.fetchColumn()方法
如果想獲取指定記錄里的一個字段結果,則可以使用PDOStatement::fetchColumn()。
$rs = $db-query("SELECT COUNT(*) FROM foo");
$col = $rs-fetchColumn();
echo $col;
?
一般使用fetchColumn()方法進行count統計,對某些只需要單字段的記錄可以很好地操作。
9.回調函數
PDO還規定在每一個fetch模式下,經過處理后的結果中使用一個回調函數。
function draw_message($subject,$email) { … }
$res = $db-query(“SELECT * FROM msg”);
$res-fetchAll(PDO::FETCH_FUNC,“draw_message”);
?
10.直接查詢的問題
直接使用Query查詢行每次都會直接提交給數據庫,如果查詢較多,每次頻頻查詢將導致效率降低。
另外,在安全問題上,沒有過濾一些特殊字符容易產生SQL注入。
11.過濾字符
下面我們來看看如何使用PDO進行過濾引起SQL注入的方法,即過濾特殊字符。我們在PDO中使用quote()方法,使用例子如下:
$query = “SELECT * FROM users WHERE
login=“.$db-quote($_POST[‘login’]).”
AND
passwd=“.$db-quote($_POST[‘pass’]);
12.事務處理
PDO驅動程序支持所有的事務數據庫,并且PDO提供更簡便的方法,如下:
$db-beginTransaction();
if ($db-exec($qry) === FALSE) {
$db-rollback();
}
$db-commit();
?
13.執行一個批處理事務
在下面的示例中,假設我們為一個新雇員創建一組條目,這個雇員有一個ID號,即23。除了輸入這個雇員的基本數據外,還需要記錄雇員的薪水。分別完成兩個更新很簡單,但通過將這兩個更新包括在beginTransaction()和commit()調用中,就可以保證在更改完成之前,其他人無法看到更改。如果發生了錯誤,catch塊可以回滾事務開始以來發生的所有更改,并打印出一條錯誤消息。代碼內容如下:
try {
$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO_ATTR_PERSISTENT = true));
echo "Connected\n";
$dbh-setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);
$dbh-beginTransaction();
$dbh-exec("insert into staff (id, first, last)
values (23, 'Joe', 'Bloggs')");
$dbh-exec("insert into salarychange (id, amount, changedate)
values (23, 50000, NOW())");
$dbh-commit();
} catch (Exception $e) {
$dbh-rollBack();
echo "Failed: " . $e-getMessage();
}
?
一般我們為了減少數據庫鏈接,取數據是一次取出所有想要的數據然后做循環處理,而不是一個個循環取出
$servername?=?"localhost";
$username?=?"root";
$password?=?"root";
$dbname?=?"aaaa";
//?創建連接
$conn?=?new?mysqli($servername,?$username,?$password,?$dbname);
//?Check?connection
if?($conn-connect_error)?{
die("連接失敗:?"?.?$conn-connect_error);
}?
$conn-query('set?names?utf8');
$sql?=?"SELECT?name?FROM?xiao?";//這里是查詢xiao表的name列的所有數據
$result?=?$conn-query($sql);
if?($result-num_rows??0)?{
//?輸出數據
while($row?=?$result-fetch_assoc())?{
//print_r($row);
echo?"name:?"?.?$row["name"]."br";//這里是循環打印
}
}?else?{
echo?"沒有查詢到數據";
}
$conn-close();
網站欄目:php打印數據庫列明 php實現打印功能
標題鏈接:http://vcdvsql.cn/article42/doisjec.html
成都網站建設公司_創新互聯,為您提供商城網站、自適應網站、電子商務、小程序開發、品牌網站制作、關鍵詞優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯