原生SQL查詢(xún)有 query() 和 execute() 兩個(gè)方法:
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出浮山免費(fèi)做網(wǎng)站回饋大家。
query():用于 SQL 查詢(xún)操作,并返回符合查詢(xún)條件的數(shù)據(jù)集
execute():更新和寫(xiě)入數(shù)據(jù)的 SQL 操作,返回影響的記錄數(shù)
query()
query() 方法是用于 SQL 查詢(xún)操作,和select()方法一樣返回符合查詢(xún)條件的數(shù)據(jù)集。
例子:
public function read(){
// 實(shí)例化一個(gè)空模型,沒(méi)有對(duì)應(yīng)任何數(shù)據(jù)表
$Dao = M();
//或者使用 $Dao = new Model();
$list = $Dao-query("select * from user where uid5");
if($list){
$this-assign('list', $list );
$this-display();
} else {
$this-error($Dao-getError());
}
}
對(duì)于 query() 方法返回的數(shù)據(jù)集,跟 select() 一樣,可以在模板里直接循環(huán)輸出。
execute()
execute() 方法用于更新和寫(xiě)入數(shù)據(jù)的 SQL 操作(注:非查詢(xún)操作,無(wú)返回?cái)?shù)據(jù)集),返回影響的記錄數(shù)。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 實(shí)例化一個(gè)空模型,沒(méi)有對(duì)應(yīng)任何數(shù)據(jù)表
$Dao = M();
//或者使用 $Dao = new Model();
$num = $Dao-execute("update user set email = '12345@xxx.com' where uid=3");
if($num){
echo '更新 ',$num,' 條記錄。';
}else{
echo '無(wú)記錄更新';
}
}
如果查詢(xún)比較復(fù)雜或一些特殊的數(shù)據(jù)操作不能通過(guò) ThinkPHP 內(nèi)置的 ORM 和 ActiveRecord 模式實(shí)現(xiàn)時(shí),就可以通過(guò)直接使用原生 SQL 查詢(xún)來(lái)實(shí)現(xiàn)。
注意:以上都是 user 沒(méi)有表前綴的例子,在查詢(xún)語(yǔ)句中,查詢(xún)的表應(yīng)該寫(xiě)實(shí)際的表名字(包括前綴)。
我用的代碼是:
?
//連接數(shù)據(jù)庫(kù)文件
$connect=mysql_connect("localhost","admin","admin") or die("鏈接數(shù)據(jù)庫(kù)失??!");
//連接數(shù)據(jù)庫(kù)(test)
mysql_select_db("testcg",$connect) or die (mysql_error());
$temp=file("test.csv");//連接EXCEL文件,格式為了.csv
for ($i=0;$i count($temp);$i++)
{
$string=explode(",",$temp[$i]);//通過(guò)循環(huán)得到EXCEL文件中每行記錄的值
//將EXCEL文件中每行記錄的值插入到數(shù)據(jù)庫(kù)中
$q="insert into ceshi (name,num,dom) values('$string[0]','$string[1]','$string[2]');";
mysql_query($q) or die (mysql_error());
if (!mysql_error());
{
echo " 成功導(dǎo)入數(shù)據(jù)!";
}
echo $string[4]."\n";
unset($string);
}
?
--------------------------------------------------------------------------------
phpexcel或者pear的一個(gè)組件 ,國(guó)內(nèi)有一個(gè)excelclass的插件
都是用來(lái)處理excel的,前2個(gè)功能都比較強(qiáng)大,對(duì)編碼的支持也都不錯(cuò),推薦使用pear的那個(gè),名字好像叫spreadsheet reader
phpexcel比較費(fèi)資源,不過(guò)并不是所有的excel都能讀取
樓主可以到這里去看看 pear.php.net
--------------------------------------------------------------------------------
頂樓上的回答~~順便接個(gè)分!嘿嘿
--------------------------------------------------------------------------------
AdO直接上傳
注意有些字符mysql或ADO可能不支持
--------------------------------------------------------------------------------
首先確認(rèn)你的數(shù)據(jù)庫(kù)是什么編碼的,以u(píng)tf-8為例,
你首先打開(kāi)excel 文件,然后保存,選擇為另存為.csv文件。
然后用文本編輯器打開(kāi).csv文件,另存為utf-8的csv
然后你寫(xiě)php 可以使用php 的getcsv 打開(kāi)(這樣確保你有的字段中含有,而導(dǎo)致解析錯(cuò)誤),然后把解析的結(jié)果導(dǎo)入到數(shù)據(jù)庫(kù)中。
然后完了。
方法1、最常見(jiàn)的方法是:$_POST['fieldname'];
說(shuō)明:只能接收Content-Type: application/x-www-form-urlencoded提交的數(shù)據(jù)
解釋?zhuān)阂簿褪潜韱蜳OST過(guò)來(lái)的數(shù)據(jù)
方法2、file_get_contents("php://input");
說(shuō)明:
允許讀取 POST 的原始數(shù)據(jù)。
和 $HTTP_RAW_POST_DATA 比起來(lái),它給內(nèi)存帶來(lái)的壓力較小,并且不需要任何特殊的 php.ini 設(shè)置。
php://input 不能用于 enctype="multipart/form-data"。
解釋?zhuān)?/p>
對(duì)于未指定 Content-Type 的POST數(shù)據(jù),則可以使用file_get_contents(“php://input”);來(lái)獲取原始數(shù)據(jù)。
事實(shí)上,用PHP接收POST的任何數(shù)據(jù)都可以使用本方法。而不用考慮Content-Type,包括二進(jìn)制文件流也可以。
所以用方法二是最保險(xiǎn)的方法
方法3、$GLOBALS['HTTP_RAW_POST_DATA'];
說(shuō)明:
總是產(chǎn)生 $HTTP_RAW_POST_DATA 變量包含有原始的 POST 數(shù)據(jù)。
此變量?jī)H在碰到未識(shí)別 MIME 類(lèi)型的數(shù)據(jù)時(shí)產(chǎn)生。
$HTTP_RAW_POST_DATA 對(duì)于 enctype="multipart/form-data" 表單數(shù)據(jù)不可用
如果post過(guò)來(lái)的數(shù)據(jù)不是PHP能夠識(shí)別的,可以用 $GLOBALS['HTTP_RAW_POST_DATA']來(lái)接收,
比如 text/xml 或者 soap 等等
解釋?zhuān)?/p>
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST過(guò)來(lái)的原始數(shù)據(jù)。
$_POST或$_REQUEST存放的是 PHP以key=value的形式格式化以后的數(shù)據(jù)。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST過(guò)來(lái)的數(shù)據(jù)取決于centent-Type的設(shè)置,即POST數(shù)據(jù)時(shí) 必須顯式示指明Content-Type: application/x-www-form-urlencoded,POST的數(shù)據(jù)才會(huì)存放到 $GLOBALS['HTTP_RAW_POST_DATA']中