细学PHP 09 MySql

1:mysql是什么?
答:mysql是一种开源的,小型的数据库
和PHP结合的非常紧密

比较流行的LAMP组合 指 linux apache mysql php


2:我怎么样用Mysql?
答:下载mysql并安装,
装完之后,你的机器上,就有一个mysql程序始终在运行,
这个程序可以放置你的数据。


3:PHP和mysql是什么关系?
答:php是php,mysql是mysql
但是,php可以接到上mysql,
并且操作mysql

4: 连接上mysql很容易,
但连接上mysql之后,操作mysql,存、取,删,改数据
mysql增删改查数据又有mysql自身的语法。

即:连上mysql容易,但连上后
你要会基本的增删改查 sql语句

5:我对mysql比较生怎么办?
答:百度“燕十八 mysql”,下载41集教程,恶补。


在讲完小项目之后,会考虑系统的讲解mysql。

6:我安装Mysql都不太会呢?
答:老师演示一遍。
你可以自己装,也可以装集成包,比如wamp

(因为apache+php+mysql的配置挺麻烦,新手建议先装个集成包,等PHP入门后,再琢磨单独安装的方法)

 

7:在命令行下,连接上mysql,
这个黑窗口只是一个客户端。
就像QQ与腾迅服务器的关系。


8:服务器就在那里,不远不近,不来不去。
客户端去连服务器,要满足服务器的连接规范。

反过来讲:能满足服务器的连接规范,进行连接,就可以称之为客户端。

9:问:客户端只有一种吗?
比如 mysql.exe黑窗口,是mysql软件自带的客户端,
还有navcat,mysqlfront,等等

就像apache是服务器,浏览器就是客户端,而浏览器多种多样
有chrome,firefox,IE,....

10:我们接下来要用php去连接mysql
自然php也充当了客户端的角色。

mysql_connect('localhost','root','111111',true);

最后一个参数true"是否重连的意思"。

$sql = 'use test';
// 发送sql,进行查询
$rs = mysql_query($sql,$conn); // 沿着conn通道进行查询

$sql = 'set names utf8';
mysql_query($sql,$conn);

$sql = "insert into stu values ($id,'$sname','$sname')";
$rs = mysql_query($sql,$conn);

print_r(mysql_fetch_assoc($rs));
/*
mysql_fetch_assoc取出的是 关联数组
而且:
键-->表的字段名
值-->字段的值
Array
(
    [id] => 16
    [sname] => acnwhu
    [yy] => acnwhu
)
*/

print_r(mysql_fetch_row($rs));
/*
mysql_fetch_row 取出的结果是一个 索引数组
而且:
字符从左到右,索引依次是0,1,2...N
Array
(
    [0] => 5
    [1] => stu5'
    [2] => yy333333
)
*/


print_r(mysql_fetch_array($rs));
/*
mysql_fetch_array 取出的结果 既有数字索引,也有字段索引
是 前2者结果的 并集
Array
(
    [0] => 46
    [id] => 46
    [1] => rxyzqu
    [sname] => rxyzqu
    [2] => rxyzqu
    [yy] => rxyzqu
)
*/

 

print_r($obj = mysql_fetch_object($rs));
/*
mysql_fetch_object 返回的是对象
stdClass Object
(
    [id] => 33
    [sname] => stu3333
    [yy] => yy333333
)

 

/*
PHP 操作 mysql的其他几个常用函数
*/

$conn = mysql_connect('localhost','root','111111');
if(!$conn) {
    echo '连接数据库失败';
    exit;
}


// 选库
$sql = 'use test';
mysql_query($sql,$conn);

$id = isset($_GET['id']) ? $_GET['id'] + 0 :0;


// 接收id后,我准备删除数据
$sql = 'delete from stu where id=' . $id;

$rs = mysql_query($sql,$conn);

if($rs) {
    echo '删掉了一行数据<br />';
} else {
    echo '删数据失败<br />';
}


/*
严重注意:
对于增/删/改 来说,返回值 都是true/false2种情况

其中:insert,返回true,数据肯定是插入成功了.

对于update/delete ,即修改/删除来说
返回为真,代表:这个sql的语法没有问题,执行成功了.
是从语法角度/执行角度来说的.

但是,未必这个语句能影响到数据,比如你的条件不对.

就好比说: 通知书童,把昨天的垃圾扔了,书童年去扔,但发现昨天就已扔了.

返回的true ,是指你通知书童,书童也答应你去干活了.
但是:没有垃圾要扔.


所以,要想真正判断有没有删/改数据,得以实际影响的行数为准
那么,在执行delete/update后,如果获取受影响行数?
答:用函数 mysql_affected_rows
*/

/*
mysql_affected_rows : 在执行delete/update后立即调用此函数,
可得到delete/update语句影响的行数.
*/


$cnt = mysql_affected_rows($conn);
if($cnt) {
    echo '删掉了',$cnt,'行数据';
} else {
    echo '没有数据被删掉';
}

 

// 继承来看,还剩下多少条数据
echo '<br />';


$sql = 'select * from stu';
$rs = mysql_query($sql,$conn);

/**
// 这是笨办法,循环一遍
// 有现在函数可以用
$num = 0;
while(mysql_fetch_assoc($rs)) {
    $num++;
}
**/


/*
mysql_num_rows , 返回 select 语句的结果行数
在运行select 之后,立即调用mysql_num_rows 可以得到这次select的行数
*/

$num = mysql_num_rows($rs);
echo '还剩下',$num,'条数据';

 

$conn = mysql_connect('localhost','root','111111');

$db = 'test';
$sql =  'use'.$db;
echo $sql;

mysql_query($sql,$conn);

$sql = 'delete from stu where id=5';
if(mysql_query($sql,$conn)) {
    echo '删除成功';
} else { // 查询失败,就把错误信息打出来
    echo '删除失败';
    echo '原因:',mysql_errno(),'~',mysql_error();
}

 

在完成操作数据库连接后进行完相关操作,请注意及时关闭连接。

mysql_close($conn);

转载于:https://www.cnblogs.com/cnmice/archive/2013/04/07/3006128.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修改 this 指向

文章目录前言一、new关键字改变this指向二、 call&#xff08;&#xff09;三、apply&#xff08;&#xff09;四 、bind&#xff08;&#xff09;五、总结前言 修改 this 指向,四种方法 一、new关键字改变this指向 //构造函数版this function Fn(){this.user "追梦子…

默认方法和多重继承

最近卢卡斯JOOQ埃德尔发布和文章有关嵌套类及其使用。 这是一个有趣的话题&#xff0c;他的文章一如既往地有趣并且值得一读。 我只同意一个简短的声明&#xff0c;我们有一个简短的回复链&#xff0c;导致默认方法&#xff0c;以及为什么不能有类似的东西 class Outer {<n…

uniapp uni.request GET方式请求,不能直接传数组解决方法

这里写目录标题目录遇到的问题 GET请求方法传数组解决方案目录 遇到的问题 GET请求方法传数组 想传一个数组&#xff0c;但是后台接受到的数据与浏览器中显示的数据和前台代码传的不一样&#xff1b; 前台代码打印 浏览器显示数据 其中HerbalNameList &#xff0c;变成了字…

休眠CascadeType.LOCK陷阱

介绍 引入了Hibernate 显式锁定支持以及Cascade Types之后 &#xff0c;就该分析CascadeType.LOCK行为了。 休眠锁定请求触发内部LockEvent 。 关联的DefaultLockEventListener可以将锁定请求级联到锁定实体子级。 由于CascadeType.ALL也包括CascadeType.LOCK &#xff0c;因…

c++中在堆和栈中申请空间的差别

堆中和栈中申请的空间的比较, 我找到了下面的比较: 栈的情况&#xff1a;栈上分配空间的好处是快&#xff0c;而且对象生存期是自动的&#xff0c;离开当前域之后就自动析构回收。坏处就是栈空间有限&#xff0c;而且不能人为控制对象的生存期&#xff0c;比如你无法将一个函数…

推销自己的海盗猫王运营商

因此&#xff0c;Java没有Elvis运算符&#xff08;或者更正式的名称是null合并运算符或null安全成员选择&#xff09;……虽然我个人不太在意它&#xff0c;但有些人似乎很喜欢它。 当一位同事需要几天后&#xff0c;我坐下来探讨了我们的选择。 而且你知道什么&#xff01; 您…

sunos 查cpu主频指令prtdiag

sun查cpu主频指令 usr/sbin/psrinfo -v ...虚拟处理器 63 在下列时间的状态&#xff1a;09/10/2013 14:23:52自 04/08/2013 17:41:40 开始已在运行。sparcv9 处理器以 2660 MHz 运行,而且有 sparcv9 浮点数处理器 sun的prtdiag指令: 查cpu个数 bash-3.2$ uname -a SunOS m5000…

使用CDI简化JAX-RS缓存

这篇文章&#xff08;通过一个简单的示例&#xff09;说明了如何使用CDI Producers使其在RESTful服务中利用缓存控制语义更加容易 与HTTP 1.0中可用的Expires标头相比&#xff0c; HTTP 1.1中添加了Cache-Control标头&#xff0c;这是急需的改进。 RESTful Web服务可以利用此标…

字符串字符和数字分割

现在有个String类型的字符串&#xff1a; String str"AA120"; 我想把它分解成 AA &#xff1b;120 就是把数字和字母分开&#xff1b; 求方法 补充&#xff1a; 格式是前面是字母 不确定几位&#xff0c;后面是数字&#xff0c;也不确定几位 就是"AA111…

transform限制position:fixed的跟随效果

我们应该都知道&#xff0c;position:fixed可以让元素不跟随浏览器的滚动条滚动&#xff0c;而且这种跟随效果连它的兄弟们position:relative/absolute都限制不了。但是&#xff0c;真是一物降一物&#xff0c;position:fixed固定效果却被小小的transform给干掉了&#xff0c;直…

Maven提示:有关可执行jar的所有信息

Maven提示&#xff1a;有关可执行jar的所有信息 在分发代码时&#xff0c;可执行jar是非常有用的工具。 这意味着&#xff0c;只要将Java安装在客户端计算机上&#xff0c;至少在Windows和Mac上&#xff0c;您的用户只需双击jar即可启动程序。 另外&#xff0c;在命令行上&…

C# 查询一张表的数据用于补充另外一张表的数据 MySQL数据库

UPDATE bookhistory bh set bh.CategoryId (SELECT CategoryId FROM booklist bk where bk.Id bh.BookListId)

Gentoo man手册指南

转载&#xff1a;http://www.gentoo.org/doc/zh_cn/man-guide.xml#doc_chap2 http://blog.csdn.net/andyelvis/article/details/4044938 使用man命令技巧 Gentoo man手册指南 内容: 1. 简介2. 使用man结构 1. 简介 man程序 每一个人在他的linux人生中都使用…

Java 8 Lambda表达式教程

问候&#xff01; :) 离开几个月后&#xff0c;我决定恢复风格:)。 我注意到我以前有关新的Date / Time API的一篇文章非常受欢迎&#xff0c;因此这次我将把本篇文章专门介绍Java 8的另一个新功能&#xff1a; Lambda Expressions 。 功能编程 Lambda表达式是Java编程语言最…

React 父组件(hooks)调用子组件(calss)方法

父组件&#xff08;hooks&#xff09; let richTextRef {};<RichText getRichText{getRichText} content{content} onRef{ref > richTextRef ref} />子组件&#xff08;class&#xff09; componentDidMount () > {this.props.onRef && this.props.onRe…

[HDU] 2553 N皇后问题-简单深搜

题目链接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid2553 方法&#xff1a; 1.可以用对称的思想&#xff0c;即&#xff1a;如果N是偶数&#xff0c;则只计算第一个皇后分别放在第一行的位置1到N/2这N/2个情况的结果和&#xff0c;最后再乘以2。如果是奇数&#…

您真的了解@WebService吗?

SOAP Web服务无论如何都不是最先进的技术-尽管它仍然存在&#xff0c;但是基于REST的Web服务却提供了激烈的竞争。 无论如何–这绝对不是REST vs SOAP帖子&#xff01; 我观察到了一些实例&#xff0c;至少可以说&#xff0c;使用基于Java的SOAP Web服务的方式不太理想。 我认…

全局使用dva dispatch

// 第一种 这个umi2还可以 umi3就不可以了 window.g_app._store.dispatch({type: login/logout,});// 第二种 调用dispatch(所有models都可以) getDvaApp()._store.dispatch({type: login/logout,});

[转]JQuery.Ajax之错误调试帮助信息

本文转自&#xff1a;http://blog.csdn.net/lampsunny/article/details/8053967 下面是Jquery中AJAX参数详细列表&#xff1a; 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址。 type String (默认: "GET") 请求方式 ("POST&quo…