<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>爱一流网</title><link>https://www.aiyiliu.com/</link><description>爱一流网cms技术教程分享网</description><item><title>CSS：去除行内/行内块元素默认空隙的四种方式</title><link>https://www.aiyiliu.com/post/401.html</link><description>&lt;p&gt;几个连续的行内（inline）或行内块（inline-block）元素【span，i，img等标签，或标签被设置为display: inline/inline-block;】，有时会有默认的间隙。&lt;/p&gt;&lt;p&gt;效果如下:&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.aiyiliu.com/zb_users/upload/2024/02/202402291709184857682716.png&quot; title=&quot;CSS：去除行内/行内块元素默认空隙的四种方式  第1张&quot; alt=&quot;CSS：去除行内/行内块元素默认空隙的四种方式  第1张&quot; class=&quot;ue-image&quot;&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;原因：标签之间的空格、回车、换行造成的。&lt;/p&gt;&lt;p&gt;下面给出几种解决方式。&lt;/p&gt;&lt;p&gt;方式一：标签连写&lt;/p&gt;&lt;p&gt;&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;span&amp;gt;1&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;2&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;3&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;4&amp;lt;/span&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;&lt;p&gt;方式二：巧用注释标签&amp;lt;!----&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;span&amp;gt;1&amp;lt;/span&amp;gt;&amp;lt;!--&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; --&amp;gt;&amp;lt;span&amp;gt;2&amp;lt;/span&amp;gt;&amp;lt;!--&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; --&amp;gt;&amp;lt;span&amp;gt;3&amp;lt;/span&amp;gt;&amp;lt;!--&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; --&amp;gt;&amp;lt;span&amp;gt;4&amp;lt;/span&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;&lt;p&gt;方式三：父元素font-size:0，注意行内/行内块元素需同步设置font-size。&lt;/p&gt;&lt;p&gt;.box {&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; font-size: 0;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;.box span {&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; padding: 0 20px;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; background: #655;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; font-size: 40px;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; color: #fff;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;方式四：浮动，注意清除浮动操作。&lt;/p&gt;&lt;p&gt;.box {&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; overflow: hidden;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;.box span {&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; float: left;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; padding: 0 20px;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; background: #655;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; font-size: 40px;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; color: #fff;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;方式一和方式二最为简单，方式三和方式四有使用注意事项。用哪种方式，看个人选择。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 29 Feb 2024 13:31:22 +0800</pubDate></item><item><title>css小知识 行内块元素之间4px的默认间距问题的解决方法</title><link>https://www.aiyiliu.com/post/400.html</link><description>&lt;p&gt;关于行内元素里的默认间距:4px&lt;/p&gt;&lt;p&gt;空白是div的高度造成的。图片作为行内元素，和文字一样具有字号和行高属性，所以会顶起div。&lt;/p&gt;&lt;p&gt;把div里面的font-size设为0就不会有这个空白了。&lt;/p&gt;</description><pubDate>Thu, 29 Feb 2024 13:25:55 +0800</pubDate></item><item><title>解决input表单元素在ios系统上默认圆角和阴影的问题？</title><link>https://www.aiyiliu.com/post/399.html</link><description>&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;这是一个前端开发中的一个小坑，对于正在做响应式网站的朋友，这个坑必须得注意，因为一不留神就会把它给忽略掉，从而导致页面中的input框在ios系统上尴尬的样式！下面这句代码建议在开始动手之前，就事先写到css文件内！&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;input{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; border: none;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; -moz-appearance:none;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; -webkit-appearance : none ;/*解决ios上按钮的圆角问题*/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; border-radius: 0;/*解决ios上输入框圆角问题*/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; outline:medium;/*去掉鼠标点击的默认黄色边框*/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; background-color: transparent;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 29 Feb 2024 13:25:03 +0800</pubDate></item><item><title>手机端点击input输入框时会自动放大的解决方法</title><link>https://www.aiyiliu.com/post/398.html</link><description>&lt;p&gt;手机端点击input输入框时网页自动放大是怎么回事呢？&lt;/p&gt;&lt;p&gt;这是因为在移动端自适应宽度的代码中，没有把input的自动缩放关闭！一般常见于苹果手机的ios系统，而安卓系统似乎是默认关闭。&lt;/p&gt;&lt;p&gt;input框自动放大，虽然说有便于用户的输入和阅读，但也同时给用户带来了视觉的麻烦，所以一般情况下，我们都是选择关闭自动缩放的！&lt;/p&gt;&lt;p&gt;那么该如何关闭input输入框在手机端的这个缩放效果呢？&lt;/p&gt;&lt;p&gt;1，找到你的网页头部head的代码，查看代码并找到，下面的这段：&lt;/p&gt;&lt;p&gt;&amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width,initial-scale=1.0&amp;quot;&amp;gt;这段&lt;/p&gt;&lt;p&gt;2，找到之后，将这段代码更改为：&lt;/p&gt;&lt;p&gt;&amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width,initial-scale=1.0,user-scalable=no,minimum-scale=1,maximum-scale=1&amp;quot;&amp;gt;&lt;/p&gt;&lt;p&gt;到此为止，这个问题已得到完美的解决！&lt;/p&gt;</description><pubDate>Thu, 29 Feb 2024 13:24:06 +0800</pubDate></item><item><title>PHP实现自动压缩CSS文件的代码方法</title><link>https://www.aiyiliu.com/post/397.html</link><description>&lt;p&gt;为什么要对网站的css的文件进行压缩？&lt;/p&gt;&lt;p&gt;大家都知道， 减小代码体积， 就能提高页面的传输速度， 打开网页也就快 了， 这是基于带宽瓶颈的理论， 当然服务器速度受到其他很多因素的影响， 有 PHP 代码执行速度， 数据库访问速度， 磁盘读写 IO 速度等， 无论怎样， 带宽影响是非常大， 在小服务器网络带宽的众多不足条件下， 只能选择压缩代码从而提高网络！&lt;/p&gt;&lt;p&gt;为什么我们使用的zblog主题的开发者不对主题代码进行压缩呢？&lt;/p&gt;&lt;p&gt;如果你是一个喜欢折腾的站长，相信你没有少研究你的主题文件，一般情况大部分的主题开发者是不会对主题代码进行压缩的，因为这方便他们对代码的管理，如果进行压缩，那么这些代码看起来则会让人眼花缭乱，提升了管理的难度，因此这样的情况下，为了尽可能的提升服务器的性能，这就需要使用者们自己来进行代码压缩了！&lt;/p&gt;&lt;p&gt;如何利用PHP对css代码对ZBlog主题的css进行压缩呢？&lt;/p&gt;&lt;p&gt;1，首先在主题文件中（一般写到主题中的函数文件夹里）新建一个PHP文件，如命名为style.php，&lt;/p&gt;&lt;p&gt;2，接下来将下方代码复制到这个文件中去：&lt;/p&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;p&gt;&amp;lt;?php&amp;nbsp; header(&amp;#39;Content-type: text/css&amp;#39;);&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;ob_start(&amp;quot;compress&amp;quot;);&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;function compress($buffer) {&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; /* 删除注释 */&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; $buffer = preg_replace(&amp;#39;!/\*[^*]*\*+([^/][^*]*\*+)*/!&amp;#39;, &amp;#39;&amp;#39;, $buffer);&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; /* 删除标签、空格、卡等. */&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; $buffer = str_replace(array(&amp;quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;quot;, &amp;quot;\r&amp;quot;, &amp;quot;\n&amp;quot;, &amp;quot;\t&amp;quot;, &amp;#39;&amp;nbsp; &amp;#39;, &amp;#39;&amp;nbsp; &amp;nbsp; &amp;#39;, &amp;#39;&amp;nbsp; &amp;nbsp; &amp;#39;), &amp;#39;&amp;#39;, $buffer);&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; return $buffer;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;/* 你的CSS文件,可以多个 */&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;include(&amp;#39;style/main.css&amp;#39;); //使用者本人的主题css文件的路径&amp;nbsp;&lt;/p&gt;&lt;p&gt;include(&amp;#39;style/main2.css&amp;#39;);&amp;nbsp; //主题使用者的主题css文件的路径&lt;/p&gt;&lt;p&gt;ob_end_flush();&lt;/p&gt;&lt;p&gt;3，最后，在主题header.php的head标签内加入下面的代码（style.php换成你实际的这个文件的路径即可）：&lt;/p&gt;&lt;p&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot; href=&amp;quot;style.php&amp;quot;/&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 29 Feb 2024 13:23:02 +0800</pubDate></item><item><title>PHP函数parse_url用法的语法详解和具体实例分析</title><link>https://www.aiyiliu.com/post/396.html</link><description>&lt;p&gt;在PHP中有这么一个可以用来分析URL的函数，它就是parse_url()，它是一个让人一看就知道是用来干什么的函数！英文单词parse的意思就是：解析，parse_url当然就是解析url的意思了。&lt;/p&gt;&lt;p&gt;语法：&lt;/p&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;p&gt;parse_url($url);//$url是就是一串网址&lt;/p&gt;&lt;p&gt;如：&lt;/p&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;p&gt;$url = &amp;quot;http://www.themeol.com/category/zbzt/&amp;quot;;&lt;/p&gt;&lt;p&gt;print_r(parse_url($url));&lt;/p&gt;&lt;p&gt;此时输出的结果为：&lt;/p&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;p&gt;Array (&amp;nbsp;&lt;/p&gt;&lt;p&gt;[scheme] =&amp;gt; http,&lt;/p&gt;&lt;p&gt;[host] =&amp;gt; www.themeol.com,&lt;/p&gt;&lt;p&gt;[path] =&amp;gt; /category/zbzt/&amp;nbsp;&lt;/p&gt;&lt;p&gt;)&lt;/p&gt;&lt;p&gt;这样就把一个url地址彻底的解析出来了！&lt;/p&gt;&lt;p&gt;再如：&lt;/p&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;p&gt;&amp;lt;?php&amp;nbsp;&lt;/p&gt;&lt;p&gt;$url = &amp;#39;http://username:password@hostname/path?arg=value#anchor&amp;#39;;&amp;nbsp;&lt;/p&gt;&lt;p&gt;print_r(parse_url($url));&amp;nbsp;&lt;/p&gt;&lt;p&gt;?&amp;gt;&lt;/p&gt;&lt;p&gt;此时的结果为：&lt;/p&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;p&gt;Array (&amp;nbsp;&lt;/p&gt;&lt;p&gt;[scheme] =&amp;gt; http&amp;nbsp;&lt;/p&gt;&lt;p&gt;[host] =&amp;gt; hostname&amp;nbsp;&lt;/p&gt;&lt;p&gt;[user] =&amp;gt; username&amp;nbsp;&lt;/p&gt;&lt;p&gt;[pass] =&amp;gt; password&amp;nbsp;&lt;/p&gt;&lt;p&gt;[path] =&amp;gt; /path&amp;nbsp;&lt;/p&gt;&lt;p&gt;[query] =&amp;gt; arg=value&amp;nbsp;&lt;/p&gt;&lt;p&gt;[fragment] =&amp;gt; anchor&amp;nbsp;&lt;/p&gt;&lt;p&gt;)&lt;/p&gt;&lt;p&gt;从上面的例子里可以看到，PHP函数parse_url()可以很容易分解出一个URL的各个部；那么如果要拿指定的部分出来的话也很容易，如：&lt;/p&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;p&gt;echo parse_url($url, PHP_URL_PATH);&lt;/p&gt;&lt;p&gt;其中第二个参数“”的值可以是：&lt;/p&gt;&lt;p&gt;1，PHP_URL_SCHEME&lt;/p&gt;&lt;p&gt;2，PHP_URL_HOST&lt;/p&gt;&lt;p&gt;3，PHP_URL_USER&lt;/p&gt;&lt;p&gt;4，PHP_URL_PASS&lt;/p&gt;&lt;p&gt;5，PHP_URL_PATH&lt;/p&gt;&lt;p&gt;6，PHP_URL_QUERY&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;7，PHP_URL_FRAGMENT&lt;/p&gt;&lt;p&gt;8，PHP_URL_PORT&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 29 Feb 2024 13:22:03 +0800</pubDate></item><item><title>MySql基本操作：对指定表中指定的字段进行增删改操作</title><link>https://www.aiyiliu.com/post/395.html</link><description>&lt;p&gt;1，新创建一个数据表&lt;/p&gt;&lt;p&gt;create table`数据表名`(id int,name varchar(20));&lt;/p&gt;&lt;p&gt;2，新增1个字段：&lt;/p&gt;&lt;p&gt;alter table 数据表名 add COLUMN 字段名 VARCHAR(20) DEFAULT NULL;（或NOT NULL DEFAULT 0;）&lt;/p&gt;&lt;p&gt;例①：alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加一个字段，默认为空&lt;/p&gt;&lt;p&gt;例②：alter table user add COLUMN new2 TINYINT(1) NOT NULL DEFAULT 0 ;&amp;nbsp; //增加一个字段， 默认不为空 初始值为0&lt;/p&gt;&lt;p&gt;3，删除一个或多个字段：&lt;/p&gt;&lt;p&gt;alter table 数据表名 drop column 字段名1,drop column 字段名2,drop column 字段名3······;&lt;/p&gt;&lt;p&gt;例：alter table user DROP COLUMN new2;&amp;nbsp; //删除一个字段&lt;/p&gt;&lt;p&gt;4，修改一个字段&lt;/p&gt;&lt;p&gt;alter table 数据表名 MODIFY 字段名 VARCHAR(10); 　//修改一个字段的数据类型&lt;/p&gt;&lt;p&gt;例：alter table user CHANGE new1 new4 int;　 //修改一个字段的名称，此时一定要重新指定该字段的数据类型&lt;/p&gt;</description><pubDate>Thu, 29 Feb 2024 13:21:10 +0800</pubDate></item><item><title>教你如何将无效的URL重定向到网站其他页面</title><link>https://www.aiyiliu.com/post/394.html</link><description>&lt;p&gt;很多时候，我们考虑把无效的URL比如：用户拼错的URL、不存在的URL重定向到别的网页，例如网站的首页、404页面等，那么这样的重定向功能是如何实现的呢？接下来我就带着大家来实现一次！&lt;/p&gt;&lt;p&gt;方法：在httpd.conf或.htaccess文件中使用ErrorDocument来捕获404 错误（找不到文件），具体代码如下：&lt;/p&gt;&lt;p&gt;Markup&lt;/p&gt;&lt;p&gt;ErrorDocument 404 /index.html&amp;nbsp;&lt;/p&gt;&lt;p&gt;DirectoryIndex index.html /path/to/notfound.html&lt;/p&gt;&lt;p&gt;本功能会让所有的404错误—每次当某人请求无效的URL 时，都返回URL / index.html 提供的网站首页。&lt;/p&gt;&lt;p&gt;这里需要注意两点：&lt;/p&gt;&lt;p&gt;1、直接指向首页是否是合适的？或者让它指向到一个404页面会更好些？如果在404页面用javasctrip做一个跳转到首页，也是SEO允许的做法。&lt;/p&gt;&lt;p&gt;2、即使返回有效的文件，仍然会将404 状态码返回给客户端和搜索引擎。这表示搜索引擎机器人来确认网站上的链接时，仍然会得到正确的结果（404状态码）。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 29 Feb 2024 13:20:00 +0800</pubDate></item><item><title>php中if(变量1=变量2){}这样的条件语句该怎么理解？</title><link>https://www.aiyiliu.com/post/393.html</link><description>&lt;p&gt;在做php网站开发中，我们经常会用的到这样的if判断语法：&lt;/p&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;p&gt;//例如&lt;/p&gt;&lt;p&gt;$b=3;&lt;/p&gt;&lt;p&gt;if($a=$b){&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; $c=$a.&amp;#39;一个结论&amp;#39;;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;return $c;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;在我刚开始学开发的时候，见到的都是下面这样的：&lt;/p&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;p&gt;$a=3;$b=3;&lt;/p&gt;&lt;p&gt;if($a==$b){&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; $c=$a.&amp;#39;一个结论&amp;#39;;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; return $c;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;这种if语句是刚开始学习PHP时最常见的if语法，大家都能理解；而第一种PHP语法是什么意思呢？当初在我第一次见到这种判断语句的时候我是比较懵X的，完全不理解！后来到处请教小伙伴才闹明白了它的意思。&lt;/p&gt;&lt;p&gt;php中if(变量1=变量2){}这样的if语句的含义&lt;/p&gt;&lt;p&gt;它的含义是这样子的：首先把变量2的值赋给变量1，再判断if(变量2)是否为真，如果为真则，运行{}中的代码。&lt;/p&gt;&lt;p&gt;总结：&lt;/p&gt;&lt;p&gt;双等号和三等号, 都可用来判断, 但双等号在二边操作数类型不同时会触发类型自动转换,有时这种转换不可控, 所以推荐用三等号, 由用户来确定数据类型&lt;/p&gt;&lt;p&gt;一个等号是赋值,最终表达式的值是等号左边的值, 如果用在if中, 这个值会强制转为布尔型,具体是false/true, 要看当前值了。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 29 Feb 2024 13:18:51 +0800</pubDate></item><item><title>PHP数据库连接对象PDO的创建与使用详解</title><link>https://www.aiyiliu.com/post/392.html</link><description>&lt;p&gt;PHP的学习其实也没有太多的难点，最重要的就是掌握PHP操作数据库的方法即可，而其它的PHP函数只要多写写记住了它们的使用方式和场景就没大问题了。&lt;/p&gt;&lt;p&gt;今天翻看以前学习PHP时的笔记看到了当时写的PDO对象的创建和使用代码，还是挺感触的，现在就再来写一遍代码，作为这次的心情笔记吧，如果能帮到正在学习PHP开发的同学，那就更好不过了！&lt;/p&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;p&gt;try{&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $dsn = &amp;#39;mysql:host=localhost;dbname=shop&amp;#39;;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $username = &amp;#39;root&amp;#39;;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pwd = &amp;#39;root&amp;#39;;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pdo = new PDO( $dsn, $username, $pwd );&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //这里还可以写一些PHP操作数据库的语法，如：&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //设置编码&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pdo-&amp;gt;exec(&amp;#39;set names utf8&amp;#39;);&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //构建sql语句&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $sql = &amp;quot;INSERT student (name,email) VALUES (&amp;#39;李四&amp;#39;,&amp;#39;123@qq.com&amp;#39;)&amp;quot;;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //运行&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $pdo-&amp;gt;exec($sql);&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; }catch( PDOException $e ) {&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //抛出错误信息&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo $e-&amp;gt;getMessage();&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p&gt;这上面只是PDO的基本使用详解示例，在真正上线的开发中，我们是不会这样子做的，而是将数据库连接代码单独写到一个connect.php（这个文件名是我刚学开发时取的，一般都用config.php或db.php之类的，其实都无所谓了，能让人看懂就好）文件中，然后再在要使用到php操作数据库的地方加载这个文件即可，如下图我以前的学习代码：&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.aiyiliu.com/zb_users/upload/2024/02/202402291709183875814148.jpg&quot; title=&quot;PHP数据库连接对象PDO的创建与使用详解  第1张&quot; alt=&quot;PHP数据库连接对象PDO的创建与使用详解  第1张&quot; class=&quot;ue-image&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;include&amp;nbsp; _DIR_.&amp;#39;/public/include/connect.php&amp;#39;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;if(isset($_COOKIE[&amp;#39;user_ name&amp;#39;])){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$sql = &amp;#39;SELECT * FROM &amp;#39;user&amp;#39; WHERE &amp;#39;user_name&amp;#39; =:user_name AND &amp;#39;user_pw&amp;#39; =:password&amp;#39;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$user_name = $_COOKIE[&amp;#39;user_name&amp;#39;];&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$password = $_COOKIE[&amp;#39;user_ pw&amp;#39;];&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$stmt= $pdo-&amp;gt;prepare($sql);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$stmt-&amp;gt;bindParam(parameter:&amp;#39;:user_name &amp;amp;variable:$user_name);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$stmt-&amp;gt;bindParam(parameter:&amp;#39;:password&amp;#39;, &amp;amp;variable: $password);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$stmt-&amp;gt;execute();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;if($stmt-&amp;gt;fetch(fetch_style: PDO::FETCH_ASSOC)!= false){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;echo &amp;#39;&amp;lt;script&amp;gt; alert(“您已登录&amp;quot;); window.location.href=&amp;quot;admin.php&amp;quot;; &amp;lt;/script&amp;gt;&amp;#39;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;}else {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;echo &amp;#39;&amp;lt;script&amp;gt; alert(“你的信息有误，请重新登录&amp;quot;) ;window.location.href= &amp;quot;login.php&amp;quot;;&amp;lt;/script&amp;gt;&amp;#39;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;setcookie(name: &amp;#39;user_name&amp;#39;,value: null,expire: time() -3600);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;setcookie(name: &amp;#39;user_pw&amp;#39;,value: null,expire: time()-3600);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;exit;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;}else if(count($_POST)===2 &amp;amp;&amp;amp; isset($_COOKIE[&amp;#39;user_name&amp;#39;])===false){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$email=$_POST[&amp;#39;email&amp;#39;];&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$password=$_POST[&amp;#39;password&amp;#39;];&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$sql=&amp;#39;SELECT * FROM &amp;#39;user&amp;#39; WHERE &amp;#39;email&amp;#39; =:email AND &amp;#39;user_pw&amp;#39; =:password &amp;#39;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;//&amp;nbsp; LIMIT 1提取数量为1.ORDER BY user_id DESC按照user_id的倒序排列。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$stmt=$pdo-&amp;gt;prepare($sql);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$date=[&amp;#39;email&amp;#39;=&amp;gt;$email, &amp;#39;password &amp;#39;=&amp;gt;$password];&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$stmt-&amp;gt;execute($date);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;$user=$stmt-&amp;gt;fetch( fetch_style: PDO::FETCH_ASSOC);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;if($user===false){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;echo &amp;#39;&amp;lt;script&amp;gt;alert(“账号或者密码错误，请重施输入&amp;quot;);history.back()&amp;lt;/script&amp;gt;&amp;#39;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;//window.location.href=&amp;quot;login.php&amp;quot;;JS跳转到指定页面的方法,histroy.back() JS中跳转到上一个页面&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;}else{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;setcookie( name: &amp;#39;user_name&amp;#39;,$user[&amp;#39;user_name&amp;#39;]);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;setcookie( name: &amp;#39;user_pw&amp;#39;,$user[&amp;#39;user_pw&amp;#39;]);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;echo &amp;#39;&amp;lt;script&amp;gt;alert(&amp;quot;账号登录成功&amp;quot;);window.location.href=&amp;quot;admin.php&amp;quot;&amp;lt;/script&amp;gt;&amp;#39;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;}else{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;echo &amp;#39;&amp;lt;script&amp;gt; alert(“请先登录&amp;quot;);window.location.href=&amp;quot;login.php&amp;quot;&amp;lt;/script&amp;gt;&amp;#39;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 29 Feb 2024 09:21:48 +0800</pubDate></item></channel></rss>