需要PHP基礎(chǔ)知識和數(shù)據(jù)庫基礎(chǔ)知識。
創(chuàng)新互聯(lián)公司主營博湖網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),博湖h5小程序制作搭建,博湖網(wǎng)站營銷推廣歡迎博湖等地區(qū)企業(yè)咨詢
以SQL為例。使用PHP MySQL 函數(shù)可以編輯數(shù)據(jù)庫。
mysql_connect() 函數(shù)打開MySQL 連接。舉例
?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}// 一些代碼...mysql_close($con);
?
mysql_connect()三個參數(shù)分別是服務(wù)器名,連接賬號,連接密碼。
連接之后,可以使用mysql_select_db()設(shè)置要處理的數(shù)據(jù)庫,后面則是用數(shù)據(jù)庫語句處理數(shù)據(jù)。SQL語法簡介網(wǎng)頁鏈接
如何解決PHP向數(shù)據(jù)庫大量插入數(shù)據(jù)時(shí),占用內(nèi)存不斷上升的問題
?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());//連接你的數(shù)據(jù)庫
mysql_select_db("mydb");//選擇你的數(shù)據(jù)庫
$result = mysql_query("SELECT `name` FROM data_boy WHERE `id`='2' LIMIT 0, 60");//執(zhí)行SQL查詢語句,搜索出60條數(shù)據(jù)
while ($row = mysql_fetch_array($result)) {
echo "姓名:".$row[name]."br";
/*補(bǔ)充一句,此處也可以是:
echo "姓名:".$row[0]."br";此處"mysql_fetch_array"默認(rèn)返回的既有 關(guān)聯(lián)數(shù)組(字段作為鍵名),也有數(shù)字索引數(shù)組*/
在使用PhpMyAdmin的時(shí)候經(jīng)常用到數(shù)據(jù)的導(dǎo)入和導(dǎo)出(Export/Import),但是在導(dǎo)入大數(shù)據(jù)的時(shí)候由于php上傳文件的限制和腳本響應(yīng)時(shí)間的限制,導(dǎo)致phpMyAdmin無法導(dǎo)入大數(shù)據(jù)。很多時(shí)候都是由于文件過大,從本地瀏覽上傳導(dǎo)入,容易中斷失敗,有沒有更好的方法呢?
方法:
在phpMyAdmin的目錄下,找到根目錄的config.inc.php文件,
打開config.inc.php文件,查找$cfg['UploadDir'],這個參數(shù)就是設(shè)定導(dǎo)入文件存放的目錄,這里把值設(shè)定為:ImportSQLFile。
在phpMyAdmin目錄下,建立以ImportSQLFile命名的文件夾,
把我們需要導(dǎo)入的數(shù)據(jù)文件,放到ImportSQLFile文件夾下面,非常簡單,
登入phpMyAdmin,選擇需要導(dǎo)入的數(shù)據(jù),點(diǎn)擊導(dǎo)航條上面的“導(dǎo)入”按鈕,
選中“從網(wǎng)站服務(wù)器上傳文件夾ImportSQLFile/中選擇:”選項(xiàng),并需要導(dǎo)入的數(shù)據(jù)文件,
最后點(diǎn)擊“執(zhí)行”,即可導(dǎo)入成功。
注意事項(xiàng)
如果在config.inc.php文件,沒有找到$cfg['UploadDir'],可以自己在文件中添加上去即可。
項(xiàng)目需要批量導(dǎo)入excel文件,如果里面有重復(fù)的數(shù)據(jù)要怎么處理呢?每插入一次數(shù)據(jù)都要到數(shù)據(jù)庫查詢么?
回復(fù)內(nèi)容:
項(xiàng)目需要批量導(dǎo)入excel文件,如果里面有重復(fù)的數(shù)據(jù)要怎么處理呢?每插入一次數(shù)據(jù)都要到數(shù)據(jù)庫查詢么?
1、如果里面有重復(fù)的數(shù)據(jù)要怎么處理呢?
1
code可以先判斷數(shù)據(jù)庫是否有該數(shù)據(jù)。/code
2、每插入一次數(shù)據(jù)都要到數(shù)據(jù)庫查詢么
1
code是的。/code
先去重得到?jīng)]有重復(fù)的數(shù)據(jù),再批量插入數(shù)據(jù)庫。也可以嘗試MYSQL中的insert ignore into或 replace into
如果查詢比較慢,對不能重復(fù)的字段加唯一鍵,然后用INSERT IGNORE INTO
php批量導(dǎo)入數(shù)據(jù)出錯
我現(xiàn)在要做的是,把一個產(chǎn)品數(shù)據(jù)從EXCEL中導(dǎo)入到PHP的MYSQL中,導(dǎo)入的過程中,總是會提示“Allowed memory size of 167772160 bytes exhausted (tried to allocate 689919 bytes) in D:\wamp\www\Company\product\admin\uploadOrder.php on line 167”這個錯誤,然后我分成第100條導(dǎo)入時(shí),就不會提示這個錯誤,這個是不是內(nèi)存溢出,有沒有好的解決方法呢?
------解決方案--------------------
php.ini中講memory_limit選項(xiàng)設(shè)置大一點(diǎn),然后重啟apache或nginx就行了
------解決方案--------------------
文件太大了,這樣的話可以用source命令直接導(dǎo)入!
------解決方案--------------------