PHP连接数据——PHP学习日记一

一、数据库操作过程

1、连接

  $link = mysql_pconnect($_POST['host'], $_POST['username'], $_POST['password'])
       or die("Could not connect: " . mysql_error());

2、选择数据库

  mysql_select_db($_POST['database'])
       or die("Could not select database: " . mysql_error());

3、执行查询语句
   $result = mysql_query($query)
       or die("Query failed: " . mysql_error());

4、获取字段名

 $numfields = mysql_num_fields($result);
 for ($i=0; $i < $numfields; $i++) // Header
    { echo mysql_field_name($result, $i); }

5、获取数据

 while ($row = mysql_fetch_row($result)) {
    $cnt = count($row);
    for ($i=0; $i<$cnt; $i++){
       echo($row[$i]);
 }

6、释放结果

  mysql_free_result($result);

7、关闭数据库连接

  mysql_close($link);

二、附件:查询自定义SQL语句的程序

1、说明

   用户可以自己定义数据库连接并执行用户的SQL语句,程序显示执行的结果,包括字段名。效果图如下:
   程序首先获取用户提交的数据库连接属性,连接数据库后执行用户的SQL语句,获取查询结果的字段名和结果,然后用表格方式显示。
   因为表单的Action指向自己,为了标识是否已经提交,在表单中添加了action项目,默认值是"unsubmited",在表单提交时赋值为"submited",只有action="submited"时PHP才执行数据库连接操作,避免第一次进入时获取无效的提交值(POST变量)。

2、代码

<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>PHP学习</title>
</head>
<body>
<center>
  <table width="80%" border="1" cellpadding="0" cellspacing="1" bordercolor="#000000" >
    <caption align="left">
      数据库设置
    </caption>
    <tr>
      <td><form id="form1" name="form1" method="post" action="sql.php" onsubmit="this.action.value = 'submitted';return true; //提交时改变action的值">
        <p align="left">主&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;机:
          <label>
            <input name="host" type="text" value="localhost" />
            </label>
          </p>
    <p align="left">用&nbsp;&nbsp;户&nbsp;名:
      <label>
        <input name="username" type="text" value="root" />
        </label>
      </p>
    <p align="left">密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码:
      <label>
        <input name="password" type="password" value="zp" />
        </label>
      </p>
    <p align="left">数&nbsp;&nbsp;据&nbsp;库:
      <label>
        <input name="database" type="text" value="sites" />
        </label>
      </p>
    <p align="left">SQL语句: 
      <label>
   <?php
      if (isset($_POST['sql']) && $_POST['sql'] != '') {
      printf('<input name="sql" type="text" value="'.$_POST['sql'].'" size="50" />');//记录上次执行的SQL语句,其他属性也可以如此处理,因实际应用中变化不经常,所以本人从简处理。
   }
   else
   {
      printf('<input name="sql" type="text" value="select * from sets" size="50" />');//第一次进入则设置默认值
   }
   ?>
        </label>
      </p>
<center>
          <input type="hidden" name="action" value="unsubmitted" />
          <input type="submit" name="Submit" value="执行" />
      </center>
      </form></td>
    </tr>
  </table>
<?php
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {  //表单是否已经提交
   $link = mysql_pconnect($_POST['host'], $_POST['username'], $_POST['password'])
       or die("Could not connect: " . mysql_error());  //连接MYSQL

   mysql_select_db($_POST['database']) 
       or die("Could not select database: " . mysql_error()); //选择数据库

   $query = $_POST['sql'];
   $result = mysql_query($query) 
       or die("Query failed: " . mysql_error()); //执行用户提交的SQL语句


?>
  <table width="80%" border="1">
    <?php
 //表头输出字段名
 printf('<tr>');
 $numfields = mysql_num_fields($result);
 for ($i=0; $i < $numfields; $i++) // Header
    { echo '<th>'.mysql_field_name($result, $i).'</th>'; }
    echo "</tr>/n";
    //输出结果
   while ($row = mysql_fetch_row($result)) {
       printf('<tr>');
       $cnt = count($row);
    for ($i=0; $i<$cnt; $i++){
       if ($row[$i] != NULL){//NULL值处理
       echo('<td>'.$row[$i].'</td>');
 
   }else{
      echo('<td>&nbsp;</td>');
    }
    }
    printf('</tr>');
   }

   mysql_free_result($result);//释放结果
   mysql_close($link); //关闭连接

   }
?>
  </table>

</center>
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值