㈠ php如何定時的執行sql語句
在mysql中創建事件,可用於定時執行
CREATE EVENT
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schele
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
㈡ PHP執行SQL查詢怎麼做
$haha = M(),$res = $haha->query($sql)。
或 $res = $waw->execute($sql)。
$sql中包含了表名,實例化模型時可以為空。注意query是查功能,execute是增刪改功能。
㈢ 怎樣在PHP里執行SQL腳本
先看個例子吧:
<?php
/*配置項*/
$mysql_server_name='localhost';
$mysql_username='root'; //用戶名
$mysql_password='12345678'; //密碼
$mysql_database='mycounter'; //資料庫名
$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database); //連接伺服器
$sql='CREATE DATABASE mycounter DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; //sql語句創建資料庫
';
mysql_query($sql); //此處執行SQL語句
$sql='CREATE TABLE `counter` (`id` INT(255) UNSIGNED NOT NULL AUTO_INCREMENT ,`count` INT(255) UNSIGNED NOT NULL DEFAULT 0,PRIMARY KEY ( `id` ) ) TYPE = innodb;';
//sql語句創建表
mysql_select_db($mysql_database,$conn); //連接資料庫
$result=mysql_query($sql); //此處執行SQL語句
mysql_close($conn);
echo "Hello!資料庫mycounter已經成功建立!";
?>
所以說在PHP里執行SQL腳本就是利用mysql_query(『sql語句』)來執行的 (當然此處是只資料庫是MYSQL的情況下,如過是sqlserver則是mssql_query(『sql語句』))
㈣ php 表單怎樣執行sql語句
if($_GET['id']=='del'):
$del="delete from kbxx";
$res=mysql_query($del,$con);
exit;
endif;
echo'<a href="a.php?id=del">刪除</a>';
㈤ PHP中如何執行sql語句
$sql = "select * from table";
$reault = mysql_query($sql);
print_r($result);
㈥ 如何在php中執行多條sql語句
這里沒有很官方的解釋,我個人認為mysql_query 不能批量執行SQL語句的原因最主要的一個就是Mysql_query不能判斷你的批量語句裡面是否包含錯誤.為了最大的保證程序的順利執行,所以,乾脆罷工了.
解決的辦法,有很多種.這里僅列出我的心得之一(利用數組用Mysql_query批量執行SQL語句)
$query = 『delete from ecs_goods_attr where attr_id=138 and goods_id=442;Insert into ecs_goods_attr (goods_attr_id,goods_id,attr_id,attr_value,attr_price)values(Null,442,138,」歐版 白色」,0);update ecs_goods set goods_number=10,shop_price=955 where goods_id=442;』
$query 是我需要執行的SQL語句,顯然這里 mysql_query($query); 是無法得到我們想要的結果的.這里我們採用一個數組.用explode 函數,將$query語句按照」;」炸開.這個說的比較形象.呵呵
$query = 『delete from ecs_goods_attr where attr_id=138 and goods_id=442;Insert into ecs_goods_attr (goods_attr_id,goods_id,attr_id,attr_value,attr_price)values(Null,442,138,」歐版 白色」,0);update ecs_goods set goods_number=10,shop_price=955 where goods_id=442;』
$query_e = explode(『;』,』$query』);
foreach ($query_e as $k =>$v)
{
mysql_query($query_e[$k]);
}
這樣 $query語句就被批量的執行了.呵呵
㈦ PHP如何去執行一個SQL語句
下次要是沒把握時,先啟動一個事務
象這樣
begin
transaction
--啟動一個事務
update
tablename
set
xxxxx
where
xxxx
select
*
from
tablename
--查看結果
--如果發現有問題就執行這個語句:
rollback
transaction
--沒問題就迅速執行這個語句:
commit
transaction
這些都要先寫好了,執行完成後要迅速執行事務提交或回滾語句。
以免啟動事務影響其它人對更改過的表的訪問。
㈧ php 中寫 sql語句
php中利用數組用mysql_query批量執行sql語句。
參考示例如下:
思路:這里採用一個數組.用explode
函數,將$query語句按照」;」炸開,然後循環執行即可:
$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語句就被批量的執行了。
㈨ 如何利用PHP執行.SQL文件
本篇文章是對使用PHP執行 SQL文件的實現代碼進行了詳細的分析介紹 需要的朋友參考下demo php:
復制代碼 代碼如下: <?php /** * 讀取 sql 文件並寫入資料庫 * @version demo php */ class DBManager { var $dbHost = ; var $dbUser = ; var $dbPassword = ; var $dbSchema = ; function __construct($host $user $password $schema) { $this >dbHost = $host; $this >dbUser = $user; $this >dbPassword = $password; $this >dbSchema = $schema; } function createFromFile($sqlPath $delimiter = (;/n)|((;/r/n))|(;/r) $prefix = $menter = array( # )) { //判斷文件是否存在 if(!file_exists($sqlPath)) return false; $handle = fopen($sqlPath rb ); $sqlStr = fread($handle filesize($sqlPath)); //通過sql語法的語句分割符進行分割 $segment = explode(";" trim($sqlStr)); //var_mp($segment); //去掉注釋和多餘的空行 foreach($segment as & $statement) { $sentence = explode("/n" $statement); $newStatement = array(); foreach($sentence as $subSentence) { if( != trim($subSentence)) { //判斷是會否是注釋 $isComment = false; foreach($menter as $er) { if(eregi("^(" $er ")" trim($subSentence))) { $isComment = true; break; } } //如果不是注釋 則認為是sql語句 if(!$isComment) $newStatement[] = $subSentence; } } $statement = $newStatement; } //對表名加前綴 if( != $prefix) { //只有表名在第一行出現時才有效 例如 CREATE TABLE talbeName $regxTable = "^[/`/ /"]{ }[/_a zA Z]+[/_a zA Z ]*[/`/ /"]{ }$";//處理表名的正則表達式 $regxLeftWall = "^[/`/ /"]{ }"; $sqlFlagTree = array( "CREATE" => array( "TABLE" => array( "$regxTable" => ) ) "INSERT" => array( "INTO" => array( "$regxTable" => ) ) ); foreach($segment as & $statement) { $tokens = split(" " $statement[ ]); $tableName = array(); $this >findTableName($sqlFlagTree $tokens $tableName); if(empty($tableName[ leftWall ])) { $newTableName = $prefix $tableName[ name ]; } else{ $newTableName = $tableName[ leftWall ] $prefix substr($tableName[ name ] ); } $statement[ ] = str_replace($tableName[ name ] $newTableName $statement[ ]); } } //組合sql語句 foreach($segment as & $statement) { $newStmt = ; foreach($statement as $sentence) { $newStmt = $newStmt trim($sentence) "/n"; } $statement = $newStmt; } //用於測試 //var_mp($segment); //writeArrayToFile( data txt $segment); // self::saveByQuery($segment); return true; } private function saveByQuery($sqlArray) { $conn = mysql_connect($this >dbHost $this >dbUser $this >dbPassword); mysql_select_db($this >dbSchema); foreach($sqlArray as $sql) { mysql_query($sql); } mysql_close($conn); } private function findTableName($sqlFlagTree $tokens $tokensKey= & $tableName = array()) { $regxLeftWall = "^[/`/ /"]{ }"; if(count($tokens)<=$tokensKey) return false; if( == trim($tokens[$tokensKey])) { return self::findTableName($sqlFlagTree $tokens $tokensKey+ $tableName); } else { foreach($sqlFlagTree as $flag => $v) { if(eregi($flag $tokens[$tokensKey])) { if( ==$v) { $tableName[ name ] = $tokens[$tokensKey]; if(eregi($regxLeftWall $tableName[ name ])) { $tableName[ leftWall ] = $tableName[ name ]{ }; } return true; } else{ return self::findTableName($v $tokens $tokensKey+ & $tableName); } } } } return false; } } function writeArrayToFile($fileName $dataArray $delimiter="/r/n") { $handle=fopen($fileName "wb"); $text = ; foreach($dataArray as $data) { $text = $text $data $delimiter; } fwrite($handle $text); } //測試 $dbM = new DBManager( localhost w f test ); $dbM >createFromFile( data sql null fff_ ); ?> lishixin/Article/program/PHP/201311/21281
㈩ 如何利用PHP執行.SQL文件
代碼如下:
<?php
classDBManager
{
var$dbHost='';
var$dbUser='';
var$dbPassword='';
var$dbSchema='';
var$conn;
function__construct($host,$user,$password,$schema)
{
$this->dbHost=$host;
$this->dbUser=$user;
$this->dbPassword=$password;
$this->dbSchema=$schema;
}
($sql,$delimiter='(; )|((; ))|(; )',$prefix='',$commenter=array('#','--'))
{
return$this->execute($sql,$delimiter,$prefix,$commenter);
}
publicfunctionexecuteFromFile($sqlPath,$delimiter='(; )|((; ))|(; )',$prefix='',$commenter=array('#','--'))
{
//判斷文件是否存在
if(!file_exists($sqlPath))returnfalse;
$handle=fopen($sqlPath,'rb');
$sqlStr=fread($handle,filesize($sqlPath));
fclose($handle);
return$this->execute($sqlStr,$delimiter,$prefix,$commenter);
}
protectedfunctionexecute($sqlStr,$delimiter='(; )|((; ))|(; )',$prefix='',$commenter=array('#','--'))
{
//通過sql語法的語句分割符進行分割
$segment=explode(";",trim($sqlStr));
//var_mp($segment);
//去掉注釋和多餘的空行
foreach($segmentas&$statement):
$sentence=explode(" ",$statement);
$newStatement=array();
foreach($sentenceas$subSentence):
if(''!=trim($subSentence)):
//判斷是會否是注釋
$isComment=false;
foreach($commenteras$comer):
if(eregi("^(".$comer.")",trim($subSentence))):
$isComment=true;
break;
endif;
endforeach;
//如果不是注釋,則認為是sql語句
if(!$isComment)
$newStatement[]=$subSentence;
endif;
endforeach;
$statement=$newStatement;
endforeach;
//對表名加前綴
if(''!=$prefix)://只有表名在第一行出現時才有效例如CREATETABLEtalbeName
$regxTable="^[`'"]{0,1}[\_a-zA-Z]+[\_a-zA-Z0-9]*[`'"]{0,1}$";//處理表名的正則表達式
$regxLeftWall="^[`'"]{1}";
$sqlFlagTree=array
(
"CREATE"=>array("TABLE"=>array("$regxTable"=>0)),
"INSERT"=>array("INTO"=>array("$regxTable"=>0))
);
foreach($segmentas&$statement):
$tokens=split("",$statement[0]);
$tableName=array();
$this->findTableName($sqlFlagTree,$tokens,0,$tableName);
if(emptyempty($tableName['leftWall'])):
$newTableName=$prefix.$tableName['name'];
else:
$newTableName=$tableName['leftWall'].$prefix.substr($tableName['name'],1);
endif;
$statement[0]=str_replace($tableName['name'],$newTableName,$statement[0]);
endforeach;
endif;
//組合sql語句
foreach($segmentas&$statement):
$newStmt='';
foreach($statementas$sentence):
$newStmt=$newStmt.trim($sentence)." ";
endforeach;
$statement=$newStmt;
endforeach;
self::saveByQuery($segment);
returntrue;
}
privatefunctionsaveByQuery($sqlArray)
{
$this->conn=mysql_connect($this->dbHost,$this->dbUser,$this->dbPassword);
mysql_select_db($this->dbSchema,$this->conn);
foreach($sqlArrayas$sql):
mysql_query($sql,$this->conn);
endforeach;
}
publicfunctionclose()
{
mysql_close($this->conn);
}
privatefunctionfindTableName($sqlFlagTree,$tokens,$tokensKey=0,$tableName=array())
{
$regxLeftWall="^[`'"]{1}";
if(count($tokens)<=$tokensKey)
returnfalse;
if(''==trim($tokens[$tokensKey])):
returnself::findTableName($sqlFlagTree,$tokens,$tokensKey+1,$tableName);
else:
foreach($sqlFlagTreeas$flag=>$v):
if(eregi($flag,$tokens[$tokensKey])):
if(0==$v):
$tableName['name']=$tokens[$tokensKey];
if(eregi($regxLeftWall,$tableName['name'])):
$tableName['leftWall']=$tableName['name']{0};
endif;
returntrue;
else:
returnself::findTableName($v,$tokens,$tokensKey+1,$tableName);
endif;
endif;
endforeach;
endif;
returnfalse;
}
}