php处理sql数据 sqlphp( 二 )


2、连接数据库sqlsrv_connect()
?php$serverName = "serverName\sqlexpress";//服务器的名字,本地localhost$connectionInfo = array( "Database"="dbName", "UID"="userName", "PWD"="password");$conn = sqlsrv_connect( $serverName, $connectionInfo);if( $conn ) {echo "Connection established.br /";
}else{echo "Connection could not be established.br /";die( print_r( sqlsrv_errors(), true));
}
3、操作数据库
1)执行sql语句sqlsrv_query(),返回值为true或者false , 这里函数的用法跟mysql_query(),不一样 。它需要把连接的资源句柄当作参数传进去,看源码 。资源句柄就是上面代码连接数据库的“$conn” 。
$sql = "select * from test1";//sql语句$data = https://www.04ip.com/post/sqlsrv_query($conn,$sql);//$conn资源句柄if($data == true){die("执行成功");
}else{die("执行失败");
}
2)获取结果集
//以数值索引数组、关联数组或这两种数组的形式检索下一行的数据 。类似于mysql_fetch_arraysqlsrv_fetch_array
//以对象形式检索下一行的数据 。sqlsrv_fetch_object 1234
$sql = "select * from test1";$data = https://www.04ip.com/post/sqlsrv_query($conn,$sql);if($data == true){while($row = sqlsrv_fetch_array( $data, SQLSRV_FETCH_ASSOC) ) {echo $row['id'].", ".$row['name']."br /";
}else{die( print_r( sqlsrv_errors(), true));
}
}
$sql = "SELECT fName, lName FROM Table_1";$stmt = sqlsrv_query( $conn, $sql);if( $stmt === false ) {die( print_r( sqlsrv_errors(), true));
}while( $obj = sqlsrv_fetch_object( $stmt)) {echo $obj-fName.", ".$obj-lName."br /";
}
3)显示错误信息sqlsrv_errors():上面都有用到这个函数 , 只要是操作数据库发生错误,都可以使用这个函数打印出来看一下压
这里就不用上代码了
PHP执行SQL查询怎么做?$haha = M(),$res = $haha-query($sql) 。
或 $res = $waw-execute($sql) 。
$sql中包含了表名,实例化模型时可以为空 。注意query是查功能,execute是增删改功能 。
结构化查询语言(Structured Query Language)简称SQL(发音:/?es kju? ?el/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言 , 用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名 。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作 。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统 。
可以使用相同的结构化查询语言作为数据输入与管理的接口 。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能 。
1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准 。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充 。
所以 , 实际上不同数据库系统之间的SQL不能完全相互通用 。
如何利用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_dump($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_dump($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_ ); ? lishixinzhi/Article/program/PHP/201311/21281

推荐阅读