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中通过ADODB库实现调用Access数据库之修正版本
Dec 31 PHP
php报表之jpgraph柱状图实例代码
Aug 22 PHP
深入解析php之sphinx
May 15 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
PHP将字符分解为多个字符串的方法
Nov 22 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
php猴子选大王问题解决方法
May 12 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
php json转换相关知识(小结)
2018/12/21 PHP
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
2012/01/13 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
python3.4实现邮件发送功能
2018/05/28 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
关于Python解包知识点总结
2020/05/05 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
时尚休闲吧创业计划书
2014/01/25 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
保险内勤岗位职责
2014/04/05 职场文书
社区文化建设方案
2014/05/02 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
实习介绍信范文
2015/05/05 职场文书
爱心捐款活动总结
2015/05/09 职场文书