导航:首页 > 编程语言 > php中执行sql语句

php中执行sql语句

发布时间:2022-12-26 19:55:07

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;
}
}
阅读全文

与php中执行sql语句相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:144
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163