PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库


Posted in PHP onNovember 25, 2015

环境

开发包:appserv-win32-2.5.10

服务器:Apache2.2

数据库:phpMyAdmin

语言:php5,java

平台:windows 10

java驱动:mysql-connector-java-5.1.37

需求

编写一个PHP脚本语言,连接到phpMyAdmin数据库的test库

编写一个java web服务端,连接到phpMyAdmin数据库的test库

代码

php连接方式

mysql.php

<?php
/*****************************
*数据库连接
*****************************/
$conn = @mysql_connect("localhost","root","123");
if (!$conn){
  die("连接数据库失败:" . mysql_error());
}
mysql_select_db("test", $conn);
//字符转换,读库
mysql_query("set character set utf8");
mysql_query("set names utf8");
?>

test.php测试

<?php 
  error_reporting(0);     //防止报错
  include('mysql.php');
  $result=mysql_query("select * from user"); //根据前面的计算出开始的记录和记录数
  // 循环取出记录
  $six;
  while($row=mysql_fetch_row($result))
  {  
  echo $row[0];
  echo $row[1];
  }
?>

 运行截图 :

PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库

java 连接方式

1.新建一个java project为mysqlTest

2.加载JDBC驱动,mysql-connector-java-5.1.37

PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库

MySQLConnection.java

package com.mysqltest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/*
 * **Mysql连接**
 * 
 * 参数:
 * conn 连接
 * url mysql数据库连接地址
 * user 数据库登陆账号
 * password 数据库登陆密码
 * 方法:
 * conn 获取连接
 */
public class MySQLConnection {
  public static Connection conn = null;
  public static String driver = "com.mysql.jdbc.Driver";
  public static String url = "jdbc:mysql://127.0.0.1:3306/post";
  public static String user = "root";
  public static String password = "123";
  /*
   * 创建Mysql数据连接 第一步:加载驱动 Class.forName(Driver) 第二步:创建连接
   * DriverManager.getConnection(url, user, password);
   */
  public Connection conn() {
    try {
      Class.forName(driver);
    } catch (ClassNotFoundException e) {
      System.out.println("驱动加载错误");
      e.printStackTrace();
    }
    try {
      conn = DriverManager.getConnection(url, user, password);
    } catch (SQLException e) {
      System.out.println("数据库链接错误");
      e.printStackTrace();
    }
    return conn;
  }
}

Work.java

package com.mysqltest;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/*
 * mysql增删改查
 */
public class Work {
  /*
   * insert 增加
   */
  public static int insert() {
    MySQLConnection connection = new MySQLConnection();
    Connection conns; // 获取连接
    PreparedStatement pst; // 执行Sql语句
    int i = 0;
    String sql = "insert into user (username,password) values(?,?)";
    try {
      conns = connection.conn();
      pst = conns.prepareStatement(sql);
      pst.setString(1, "lizi");
      pst.setString(2, "123");
      i = pst.executeUpdate();
      pst.close();
      conns.close();
    } catch (SQLException e) {
      System.out.println("数据写入失败");
      e.printStackTrace();
    }
    return i;
  }
  /*
   * select 写入
   */
  public static void select() {
    MySQLConnection connection = new MySQLConnection();
    Connection conns; // 获取连接
    PreparedStatement pst; // 执行Sql语句(Statement)
    ResultSet rs; // 获取返回结果
    String sql = "select * from user";
    try {
      conns = connection.conn();
      pst = conns.prepareStatement(sql);
      rs = pst.executeQuery(sql);// 执行sql语句
      System.out.println("---------------------------------------");
      System.out.println("名字    |    密码");
      while (rs.next()) {
        System.out.println(rs.getString("username") + "    |    " + rs.getString("password"));
      }
      System.out.println("---------------------------------------");
      conns.close();
      pst.close();
      rs.close();
    } catch (SQLException e) {
      System.out.println("数据查询失败");
      e.printStackTrace();
    }
  }
  /*
   * update 修改
   */
  public static int update() {
    MySQLConnection connection = new MySQLConnection();
    Connection conns; // 获取连接
    PreparedStatement pst; // 执行Sql语句(Statement)
    int i = 0;
    String sql = "update user set password = ? where username = ?";
    try {
      conns = connection.conn();
      pst = conns.prepareStatement(sql);
      pst.setString(1, "123");
      pst.setString(2, "lizi");
      i = pst.executeUpdate();
      pst.close();
      conns.close();
    } catch (SQLException e) {
      System.out.println("数据修改失败");
      e.printStackTrace();
    }
    return i;
  }
  /*
   * delete 删除
   */
  public static int delete() {
    MySQLConnection connection = new MySQLConnection();
    Connection conns; // 获取连接
    PreparedStatement pst; // 执行Sql语句(Statement)
    int i = 0;
    String sql = "delete from user where username = ?";
    try {
      conns = connection.conn();
      pst = conns.prepareStatement(sql);
      pst.setString(1, "lizi");
      i = pst.executeUpdate();
      pst.close();
      conns.close();
    } catch (SQLException e) {
      System.out.println("数据删除失败");
      e.printStackTrace();
    }
    return i;
  }
  /*
   * test
   */
  public static void main(String[] args) {
    // System.out.println(insert());
     select();
    // System.out.println(update());
    // System.out.println(delete());
  }
}

 test截图

PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库

ps:php操作MySQL数据库中语句

我们常常用conn.php文件来建立与数据库的链接,然后在所需的文件中利用include 进行调用。这样有效防止对数据库属性的改动 而引起其他有关文件对数据调用的错误。

  现在来看一个conn.php文件,代码如下:

<?php
 $conn=@mysql_connect("localhost","root","")or die("数据库连接错误");//链接数据库服务器
 mysql_select_db("messageboard",$conn);//选择数据库名为messageboard
 mysql_query("set names 'utf'");//使用utf编码,这里不能写成utf-否则将显示乱码,但UTF不区分大小写
 ?>

学习积累,收集了PHP操作MYSQL的几个基础函数:

.使用mysql_connect()函数连接MySQL服务器:mysql_connect("hostname", "username","password");
如,$link = mysql_connect("localhost", "root", "") or die("不能连接到数据库服务器!可能是数据库服务器没有启动,或者用户名密码有误!".mysql_error());

.使用mysql_select_db()函数选择数据库文件:mysql_query("use 数据库名",$link);

如,$db_selected=mysql_query("use example",$link);

.使用mysql_query()函数执行SQL语句:mysql_query(string query(SQL语句),$link);

如:

添加会员:$result=mysql_query("insert into tb_member values('a','')",$link);

修改会员:$result=mysql_query("update tb_member setuser='b',pwd=''where user='a'",$link);

删除会员:$result=mysql_query("delecte from tb_member where user='b'",$link);

查询会员:$sql=mysql_query("select * from tb_book");

模糊查询:$sql=mysql_query("select * from tb_book where bookname like '%".trim($txt_book)."%'");

//通用符%表示零个或任意多个字符。

显示表结构:$result=mysql_query("DESC tb_member");

.使用mysql_fetch_array()函数从数组结果集中获得信息:

语法结构:array mysql_fetch_array(resource result[,int result_type])

参数result资源类型的参数,整形型参数,要传入的是由mysql_fetch_array()函数返回的数据指针;

参数result_type:可选项,php操作MySQL数据库语句基础整数型参数,要传入的是MYSQL_ASSOC(关联索引)、MYSQL_NUM(数字索引) MYSQL_BOTH(包括前两者,默认值)

如:

<>$sql=mysql_query("select * from tb_book");
$info=mysql_fetch_object($sql);
<>$sql=mysql_query("select * from tb_book where bookname like '%".trim($txt_book)."%'");
$info=mysql_fetch_object($sql);

.使用mysql_fetch_object()函数从结果集中获取一行作为对象:

语法结构:object mysql_fetch_object(resource result);

如:

<>$sql=mysql_query("select * from tb_book");
$info=mysql_fetch_object($sql);
<>$sql=mysql_query("select * from tb_book where bookname like '%".trim($txt_book)."%'");
$info=mysql_fetch_object($sql);

mysql_fetch_object()函数与mysql_fetch_array()函数类似,只有一点区别,即返回一个对象而不是数组,该函数只能通过字段名来访问数组。访问结果集中行的元素的语法结构:$row->col_name(列名)

.使用mysql_fetch_row()函数逐行获得结果集中的每条记录:

语法结构:array mysql_fetch_row(resource result)

如:

<>$sql=mysql_query("select * from tb_book");
$row=mysql_fetch_row($sql);
<>$sql=mysql_query("select * from tb_book where bookname like '%".trim($txt_book)."%'");
$row=mysql_fetch_row($sql);

.使用mysql_num_rows()函数获取结果集中地记录数:

语法结构:int mysql_num_rows(resource result)

如:

$sql=mysql_query("select * from tb_book");
......
<?php $nums=mysql_num_rows($sql);echo $nums;?>

注:若要获得insert、update、delete语句的所影响到的数据,则必须使用mysql_affected_rows()函数来实现。

.mysql_query("set names gb");//设置MySQL的编码格式为 gb类型,以屏蔽乱码。

.关闭记录集:mysql_free_result($sql);

.关闭MySQL数据库服务器:mysql_close($conn);

PHP 相关文章推荐
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
作为PHP程序员应该了解MongoDB的五件事
Jun 03 PHP
php中的Base62类(适用于数值转字符串)
Aug 12 PHP
Drupal7连接多个数据库及常见问题解决
Mar 02 PHP
php中explode函数用法分析
Nov 15 PHP
php显示指定目录下子目录的方法
Mar 20 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
Oct 08 PHP
简单了解PHP编程中数组的指针的使用
Nov 30 PHP
9个比较实用的php代码片段
Mar 15 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
May 02 PHP
php实现遍历多维数组的方法
Nov 25 #PHP
WordPress迁移时一些常见问题的解决方法整理
Nov 24 #PHP
基础的WordPress插件制作教程
Nov 24 #PHP
优化WordPress的Google字体以加速国内服务器上的运行
Nov 24 #PHP
在WordPress中实现评论头像的自定义默认和延迟加载
Nov 24 #PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 #PHP
WordPress中对访客评论功能的一些优化方法
Nov 24 #PHP
You might like
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
php blowfish加密解密算法
2016/07/02 PHP
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
Bootstrap实现提示框和弹出框效果
2017/01/11 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
励志演讲稿300字
2014/08/21 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
2014年仓库工作总结
2014/11/20 职场文书
质量整改通知单
2015/04/21 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
我的收音机情缘
2022/04/05 无线电
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers