當前位置:首頁 » 編程語言 » phpsql生成

phpsql生成

發布時間: 2023-09-19 07:41:47

A. 如何利用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

B. 我想在PHP頁面循環輸出SQL中的數值

echo $row($i); 改成
echo $row[$i];把while裡面的for循環中的echo
$row($i);改成echo
$row[$i];即可
調用數組需要使用[]
而不是括弧

C. 如何用php直接將SQL的查詢結果變成一個數組

1、登錄sqlservermanagment管理工具,找一個表。

D. php查詢資料庫生成數組,將數組拼接成sql形式

從資料庫查詢一整行取出來就是數組,沒明白你的將數組拼接成sql形式。如果你的意思是講數組轉換成字元串,這個函數是可以做到的impload()

E. sql如何生成sql文件

材料/工具:

1、打開資料庫

F. 如何實現PHP自動創建資料庫

你做好程序以後,把資料庫導出成sql文件
1、連接資料庫
2、讀取這個sql文件里的sql語句,並執行
3、生成一個資料庫連接參數的php文件
<?php
$con=mysql_connect("localhost","peter","abc123");
if(!$con)
{
die('Couldnotconnect:'.mysql_error());
}

if(mysql_query("CREATEDATABASEmy_db",$con))
{
echo"Databasecreated";
}
else
{
echo"Errorcreatingdatabase:".mysql_error();
}

mysql_close($con);
?>

<?php
classReadSql{
//資料庫連接
protected$connect=null;
//資料庫對象
protected$db=null;
//sql文件
public$sqlFile="";
//sql語句集
public$sqlArr=array();
publicfunction__construct($host,$user,$pw,$db_name){
$host=empty($host)?C("DB_HOST"):$host;
$user=empty($user)?C("DB_USER"):$user;
$pw=empty($pw)?C("DB_PWD"):$pw;
$db_name=empty($db_name)?C("DB_NAME"):$db_name;
//連接資料庫
$this->connect=mysql_connect($host,$user,$pw)ordie("Couldnotconnect:".mysql_error());
$this->db=mysql_select_db($db_name,$this->connect)ordie("Yoncannotselectthetable:".mysql_error());
}
//導入sql文件
publicfunctionImport($url){
$this->sqlFile=file_get_contents($url);
if(!$this->sqlFile){
exit("打開文件錯誤");
}else{
$this->GetSqlArr();
if($this->Runsql()){
returntrue;
}
}
}
//獲取sql語句數組
publicfunctionGetSqlArr(){
//去除注釋
$str=$this->sqlFile;
$str=preg_replace('/--.*/i','',$str);
$str=preg_replace('//*.**/(;)?/i','',$str);
//去除空格創建數組
$str=explode("; ",$str);
foreach($stras$v){
$v=trim($v);
if(empty($v)){
continue;
}else{
$this->sqlArr[]=$v;
}
}
}
//執行sql文件
publicfunctionRunSql(){
foreach($this->sqlArras$k=>$v){
if(!mysql_query($v)){
exit("sql語句錯誤:第".$k."行".mysql_error());
}
}
returntrue;
}
}
//範例:
header("Content-type:text/html;charset=utf-8");
$sql=newReadSql("localhost","root","","log_db");
$rst=$sql->Import("./log_db.sql");
if($rst){
echo"Success!";
}
?>

G. php 如何輸出DB類上所有SQL語句,頁面上的所有 有關mysql 連接,語句 等信息

class DB_MYSQL
{
/*
* @_conf Array: [hostname],[username],[password],[dataname],[dbtype],[charset],[debug]
*/
var $_conf;
var $_dblink; //mysql connect
var $_dberr =0;
var $_sqlnum=0; //SQL query times
var $_sql='';
var $pageinfo =array();
var $pageSize =20; //=0: all; >0 page size
var $pageOrder=0;
var $stripSet =0;
function DB_MYSQL($db_config=''){
if(empty($db_config)){
global $db_conf;
$db_config=$db_conf[0];
}
$this->_conf=$db_config;
}
function conn()
{
$this->_dblink=@mysql_connect($this->_conf['hostname'],$this->_conf['username'], $this->_conf['password'])
OR $this->debug("mysql_connect error:".str_replace($this->_conf['username'].'@','',mysql_error($this->_dblink)));
if($this->_dblink)
{
if (isset($this->_conf['charset']) and strlen($this->_conf['charset'])>0)
{
@mysql_query("SET character_set_connection=".$this->_conf['charset'].", character_set_results=".$this->_conf['charset'].", character_set_client=binary", $this->_dblink);
}
$res=@mysql_select_db($this->_conf['dataname'],$this->_dblink)
OR $this->debug("mysql_select_db error:".mysql_error($this->_dblink));
if ($res) return true;
}
$this->_dberr=1;
return false;
}
function select_db($NewDB){
$this->_conf['dataname']=$NewDB;
if(empty($this->_dblink)){
return $this->conn();
}
$res=@mysql_select_db($this->_conf['dataname'])
OR $this->debug("mysql_select_db error:".mysql_error($this->_dblink));
if ($res) return true;
$this->_dberr=1;
return false;
}
/*
* @array query ($fetchType>0)
* @result query ($fetchType=0)
*/
function query($str,$fetchType=0,$file_rows='')
{
if (strlen($str)<1){
return false;
}
if(!$this->_dblink){
$this->conn();
}
else if (!mysql_ping($this->_dblink))
{
$this->close();
$this->conn();
}
$SQL=substr($str,0,18).'..';
if ($this->_conf['debug'] > 2)
{
$SQL=$str;
}
if(!empty($file_rows))
{
$SQL=$SQL.'<BR>'.$file_rows;
}
$this->_sql=$str;
$result=@mysql_query($str,$this->_dblink) OR $this->debug("mysql_query error:".mysql_error(),$SQL);
$this->_sqlnum=$this->_sqlnum+1;
if ($result)
{
if ($fetchType==1)
{
$arr=@mysql_fetch_array($result,1);
$this->check_query_quote($arr);
$this->free($result);
return $arr;
}
else if ($fetchType==2)
{
$arr = array();
while ($row = mysql_fetch_array($result,1))
{
$this->check_query_quote($row);
$arr[] = $row;
}
$this->free($result);
return $arr;
}
return $result;
}
else if ($fetchType>1) # NEW 2010-7-28
{
return array();
}
return false;
}//END sql
/*
* @array query_page
*/
function query_page(&$page,$Field,$Table,$Where='',$Order='',$Group='')
{
$page=intval($page);
$psize=abs($this->pageSize);
$this->_table=$Table;
if($psize<0 or $psize>300) $psize=20;
$sql="SELECT count(*) as allnum FROM $Table $Where";
if (strlen($Group)>0) {
$this->_sql="$sql $Group";
$result=$this->query("$sql $Group");
$rowsnum=$this->num_rows($result);
}
else{
$this->_sql=$sql;
$row=$this->query($sql,1);
$rowsnum=$row['allnum']+0;
}
if($rowsnum==0){
$page=0;
$this->pageinfo=Array('page'=>0,'pagenum'=>0,'rowsnum'=>0);
return array();
}
$pagenum=$psize<1 ? 1 : ceil($rowsnum/$psize);
$limit='';
if($psize==0){
$page=1;
$pagenum=1;
}
else
{
if($page > $pagenum or $page < 1) $page=1;
if($pagenum > 1){
$limit='limit '.(($page-1)*$psize).','.$psize;
}
}
$this->pageinfo['page'] =$page;
$this->pageinfo['pagenum'] =$pagenum;
$this->pageinfo['rowsnum'] =$rowsnum;
$sql ="SELECT $Field FROM $Table $Where $Group $Order $limit";
$this->_sql=$sql;
return $this->query($sql,2);
}
/*
* @array fetch_array
* @type: 1 MYSQL_ASSOC 2 MYSQL_NUM #3 MYSQL_BOTH
*/
function fetch_array(&$result,$type=1)
{
$arr=Array();
if (!$result) return $arr;
while ($row = @mysql_fetch_array($result,$type))
{
$this->check_query_quote($row);
return $row;
}
$this->free($result);
return false;
}
function fetch_subarr(&$result,$keyset='',$valset='')
{
$arr=Array();
if (!$result) return $arr;
if (empty($keyset))
{
return $arr;
}
while ($row = @mysql_fetch_array($result,1))
{
$this->check_query_quote($row);
if (!empty($keyset) and isset($row[$keyset]))
{
$tag=$row[$keyset];
$arr[$tag]=empty($valset) ? $row : $row[$valset];
}
}
$this->free($result);
return $arr;
}
function check_query_quote(&$val)
{
if($this->stripSet) $this->stripVar($val);
}
function stripVar(&$val)
{
if(is_array($val)){
foreach($val as $key => $v)
{
$this->stripVar($val[$key]);
}
}
else if(is_string($val)){
$val=StripSlashes($val);
}
}
function num_rows($result){
return @mysql_num_rows($result);
}
function affected_rows()
{
return @mysql_affected_rows($this->_dblink);
}
function data_seek(&$result,$row_num=0){
return @mysql_data_seek($result,$row_num);
}
function free(&$result){
return @mysql_free_result($result);
}
function last_id(){
$id=@mysql_insert_id($this->_dblink);
return intval($id);
}
function err_code()
{
return @mysql_errno($this->_dblink);
}
function err_msg()
{
return mysql_error($this->_dblink);
}
function close(){
$result = @mysql_close($this->_dblink);
$this->_dblink=0;
}
/* NEW 2010-8-15 */
function getsql($val,$type=0)
{
if($type==1) {
$g='';
if(substr($val,0,1)=='-') $g='-';
$val=preg_replace('/\D/','',$val);
if(strlen($val)==0) $val=0;
return $g.$val;
}
else if($type==2) return doubleval($val);
else if($type==3) return $val;
else{
if ($this->_dblink) return "'" . mysql_real_escape_string($val) . "'";
else return "'" . mysql_escape_string($val) . "'";
}
}
function getstr($val,$type=0) {
return $this->getsql($val,$type);
}
function debug($string,$SQL='')
{
$debug=$this->_conf['debug'];
if ($debug==4) {
die($string.'<HR>'.$SQL);
}
else if ($debug==3) {
print($string.'<HR>'.$SQL);
}
else if ($debug==2) {
print('<!--'.$string.'<HR>'.$SQL.'-->');
}
else if ($debug==1) {
//$code=intval($this->err_code());
return 0;
}
return 0;
}
}

熱點內容
安卓什麼軟體測試手機電池 發布:2025-02-02 04:28:52 瀏覽:991
手機上傳快 發布:2025-02-02 04:27:46 瀏覽:305
電腦配置詳解圖解都有哪些 發布:2025-02-02 04:26:27 瀏覽:713
景區應該有什麼配置 發布:2025-02-02 04:09:08 瀏覽:119
c語言與java工作 發布:2025-02-02 03:59:57 瀏覽:282
qq買什麼不要支付密碼 發布:2025-02-02 03:50:29 瀏覽:495
android讀取視頻 發布:2025-02-02 03:46:57 瀏覽:826
手機號序列碼的密碼在哪裡 發布:2025-02-02 03:29:34 瀏覽:878
安卓怎麼換回鴻蒙系統 發布:2025-02-02 03:24:35 瀏覽:513
完美國際鄰水鎮箱子密碼是多少 發布:2025-02-02 03:17:04 瀏覽:625