首頁 > 後端開發 > php教程 > php實作的簡單mysql工具(執行多條sql語句)

php實作的簡單mysql工具(執行多條sql語句)

WBOY
發布: 2016-07-25 08:57:17
原創
1261 人瀏覽過
本文介绍下,php实现的一个简单的mysql工具,可能执行多条sql语句,有需要的朋友参考下。

代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

<?php

header('Content-Type:text/html;charset=GBK');

?>

<form action="" method="post">

<textarea name="sql" cols="90" rows="12"></textarea><br />

<input name="" type="Submit" value="OK!!" />

</form>

<?php

/**

* 简单mysql工具

* 执行多条sql语句

* edit by bbs.it-home.org

*/

if(isset($_GET['sg'])){

 $_SESSION['sg']=$_GET['s'];

}

if(isset($_GET['su'])){

 $_SESSION['su']=$_GET['s'];

}

 

if(isset($_POST['sql'])){

    $conn = mysql_connect('127.0.0.1', "root", "123qwe");

 

    if (!$conn) {

        echo "Unable to connect to DB: " . mysql_error();

        exit;

    }

 

    if (!mysql_select_db("pm")) {

        echo "Unable to select mydbname: " . mysql_error();

        exit;

    }

 if($_SESSION['sg']){

     mysql_query("set names 'gbk'") or die(mysql_error());

 }

 if($_SESSION['su']){

     mysql_query("set names 'utf8'") or die(mysql_error());

 }

 $sql =trim($_POST['sql']);

  

  preg_match_all("/(select|show|update|delete|drop|create|alter|insert)/s+(([`'/"])[^`'/"]+//3|[^;])+;?/i",$sql,$out,PREG_PATTERN_ORDER );

 if(count($out[0])==0) echo "No sql<br/>";

 

//解决不输入无分号找不到sql的问题

for($i=0;$i<count($out[0]);$i++){

  $sql = $out[0][$i];

  if(substr(strtolower($sql),0,6)=='select'&&strpos($sql,"()")===false&&!preg_match("/limit /d+(,/d+)?$/i",$sql)){

   $sql .= " limit 100";

  }

  echo '$sql='.$sql.'<hr>';

   

  $result = mysql_query(stripslashes($sql));

  

  if (!$result) {

   echo "<font color=#ff0000>Could not successfully run query ($sql) from DB: " . mysql_error()."</font>";  

   continue;

  }

  

  if (mysql_num_rows($result) == 0) {

   echo "No rows found, nothing to print so am exiting";

   continue;

  }

  

  // While a row of data exists, put that row in $row as an associative array

  // Note: If you're expecting just one row, no need to use a loop

  // Note: If you put extract($row); inside the following loop, you'll

  //       then create $userid, $fullname, and $userstatus

  $str = "";

  while ($row = mysql_fetch_assoc($result)) {

   if($str == ""){

    $str = '<tr  bgcolor="#003366" style="color:#ffffff">';

    foreach($row as $k=>$v){

     $str .= "<td>".$k."</td>";

    }

    $str .= "</tr>";

   }

   $str .= "<tr>";

   foreach($row as $k=>$v){

    $str .= "<td>".$v."</td>";

   }

   $str .= "</tr>";

  }

  @mysql_free_result($result);

  echo "<table border=1 >";

  echo $str;

  echo "</table>";

 }

}

?>

登入後複製


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板