php中利用數(shù)組用mysql_query批量執(zhí)行sql語(yǔ)句。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、海城網(wǎng)站維護(hù)、網(wǎng)站推廣。
參考示例如下:
思路:這里采用一個(gè)數(shù)組.用explode
函數(shù),將$query語(yǔ)句按照”;”炸開(kāi),然后循環(huán)執(zhí)行即可:
$query
=
'delete
from
ecs_goods_attr
where
attr_id=11
and
goods_id=22;
insert
into
ecs_goods_attr
(goods_attr_id,goods_id,attr_id,attr_value,attr_price)values(null,33,138,"膽略",0);
update
ecs_goods
set
goods_number=10,shop_price=55
where
goods_id=33;'
$query_e
=
explode(';','$query');
foreach
($query_e
as
$k
=$v)
{
mysql_query($query_e[$k]);
}
這樣
$query語(yǔ)句就被批量的執(zhí)行了。
?php
$dbhost = 'localhost:3306'; // mysql服務(wù)器主機(jī)地址
$dbuser = 'root'; // mysql用戶名
$dbpass = '123456'; // mysql用戶名密碼
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die('連接失敗: ' . mysqli_error($conn))
;}
echo '連接成功br /'; // 設(shè)置編碼,防止中文亂碼mysqli_query($conn , "set names utf8");
$runoob_title = '學(xué)習(xí) Python';
$runoob_author = 'RUNOOB.COM';
$submission_date = '2016-03-06';
$sql = "INSERT INTO runoob_tbl ".
"(runoob_title,runoob_author, submission_date) ".
"VALUES ".
"('$runoob_title','$runoob_author','$submission_date')";
mysqli_select_db( $conn, 'RUNOOB' );$retval = mysqli_query( $conn, $sql );
if(! $retval ){
die('無(wú)法插入數(shù)據(jù): ' . mysqli_error($conn))
;}
echo "數(shù)據(jù)插入成功\n";
mysqli_close($conn);
?
按照步驟開(kāi)始,多看PHP手冊(cè)。
MySQL為我們提供了delete和truncate語(yǔ)句來(lái)刪除數(shù)據(jù)。
delete 語(yǔ)句的定義:
刪除數(shù)據(jù)的時(shí)候用的大多都是 delete 語(yǔ)句?,F(xiàn)在讓我們來(lái)看一下 delete語(yǔ)句的定義。
DELETE?[LOW_PRIORITY]?[QUICK]?[IGNORE]?FROM?tbl_name
[WHERE?where_definition]
[ORDER BY?...]
[LIMIT?row_count]
delete?from?friends?where?user_name?=?'simaopig';
delete 注意事項(xiàng):
從語(yǔ)法結(jié)構(gòu)中,我們就可以看出,和 update 語(yǔ)法一樣,我們是可以省略 where 子句的。不過(guò)這是一個(gè)很危險(xiǎn)的行為。因?yàn)槿绻恢付?where 子句,delete 將刪除表中所有的記錄,而且是立即刪除.
truncate 語(yǔ)句的簡(jiǎn)單說(shuō)明:
這個(gè)語(yǔ)句之前我也沒(méi)有接觸過(guò),也沒(méi)有使用過(guò)。因?yàn)橐话闱闆r下,刪除數(shù)據(jù)大家都在使用delete語(yǔ)句。其實(shí)這個(gè)truncate 命令很簡(jiǎn)單,它的意思是:刪除表的所有記錄。相當(dāng)于 delete 語(yǔ)句不寫 where 子句一樣。其語(yǔ)法結(jié)構(gòu)為:
TRUNCATE?[TABLE]?tbl_name
這里簡(jiǎn)單的給出個(gè)示例,我想刪除 friends 表中所有的記錄,可以使用如下語(yǔ)句:
truncate?table?friends;
truncate 和 delete的效率問(wèn)題:
如果想要?jiǎng)h除表的所有數(shù)據(jù),truncate語(yǔ)句要比 delete 語(yǔ)句快。因?yàn)?truncate 刪除了表,然后根據(jù)表結(jié)構(gòu)重新建立它,而 delete 刪除的是記錄,并沒(méi)有嘗試去修改表。這也是為什么當(dāng)向一個(gè)使用 delete 清空的表插入數(shù)據(jù)時(shí),MySQL 會(huì)記住前面產(chǎn)生的AUTOINCREMENT序列,并且繼續(xù)利用它對(duì)AUTOINCREMENT字段編號(hào)。而truncate刪除表后,表是從1開(kāi)始為autoincrement字段編號(hào)。
不過(guò)truncate命令快規(guī)快,卻不像delete命令那樣對(duì)事務(wù)處理是安全的。因此,如果我們想要執(zhí)行truncate刪除的表正在進(jìn)行事務(wù)處理,這個(gè)命令就會(huì)產(chǎn)生退出并產(chǎn)生錯(cuò)誤信息。
php代碼中,用SQL語(yǔ)句查詢查詢數(shù)據(jù)庫(kù)里面的信息,并顯示出來(lái)
$question
$sql= "select *from tableName where question='$question' ";
//tableName 是你數(shù)據(jù)庫(kù)的名字
// question 是你數(shù)據(jù)庫(kù)的字段名字
// $question 是你問(wèn)題的答案
最簡(jiǎn)單的php語(yǔ)句把數(shù)據(jù)庫(kù)*.sql文件導(dǎo)入數(shù)據(jù)庫(kù)
復(fù)制代碼
代碼如下:
$sql=file_get_contents("text.sql");
//把SQL語(yǔ)句以字符串讀入$sql
$a=explode(";",$sql);
//用explode()函數(shù)把$sql字符串以“;”分割為數(shù)組
foreach($a
as
$b){
//遍歷數(shù)組
$c=$b.";";
//分割后是沒(méi)有“;”的,因?yàn)镾QL語(yǔ)句以“;”結(jié)束,所以在執(zhí)行SQL前把它加上
mysql_query($c);
//執(zhí)行SQL語(yǔ)句
}
在很多安裝程序中大家都會(huì)看到數(shù)據(jù)庫(kù)的安裝,其它神秘的背后就是這么簡(jiǎn)單的幾句代碼。首先安裝中會(huì)有一個(gè)Sql文件,然后再按照上面的代碼在PHP中執(zhí)行。