好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php与mysql题 php与mysql程序设计

很多站长朋友们都不太清楚php与mysql题,今天小编就来给大家整理php与mysql题,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php 面试必考题 mysql的MyISAM 和 InnoDB 的区别 2、 PHP求助,求大神帮助用PHP和MYSQL知识编写一道基础题。 3、 请教几个PHP与MYSQL的问题 高手进来看下 4、 用php+mysql做一个题库系统,随机抽取五百题左右生成考试卷,最有效率的做法是什么? php 面试必考题 mysql的MyISAM 和 InnoDB 的区别

1.InnoDB不支持FULLTEXT类型的索引。

2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from

table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含

where条件时,两种表的操作是一样的。

3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。

4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。MyISAM 是表所

innodb是行锁

5.LOAD TABLE FROM MASTER(从主负载表)操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。

另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update

table set num=1 where name like “"2%”

6.InnoDB 支持事物

选择存储引擎 根据实际情况选择。

一般情况下如果查询多建议使用myIsam 。

如果你需要事务处理或是外键,那么InnoDB 可能是比较好的方式。

优化MYSQL数据库的方法:

1,选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM

2,使用join代替子查询

3,使用联合(UNION)来代替手动创建的临时表

4,事务处理(保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败)

5,适当建立索引(如何建立索引?索引的利与弊?)

6,优化sql语句

7,explain可以看到mysql执行计划

8,分表(垂直分表,水平分表?)

9,数据库主从

PHP求助,求大神帮助用PHP和MYSQL知识编写一道基础题。

<?php

class OneFileLoginApplication

{

    private $db_type = "sqlite"; 

    private $db_sqlite_path = "./users.db";

    private $db_connection = null;

    private $user_is_logged_in = false;

    public $feedback = "";

    public function __construct()

    {

        if ($this->performMinimumRequirementsCheck()) {

            $this->runApplication(); } }

    private function performMinimumRequirementsCheck()

    {

        if (version_compare(PHP_VERSION, '5.3.7', '<')) {

            echo "Sorry, Simple PHP Login does not run on a PHP version older than 5.3.7 !";

        } elseif (version_compare(PHP_VERSION, '5.5.0', '<')) {

            require_once("libraries/password_compatibility_library.php");

            return true;

        } elseif (version_compare(PHP_VERSION, '5.5.0', '>=')) {

            return true;

        }   return false;}

    public function runApplication()

    {

        if (isset($_GET["action"])  $_GET["action"] == "register") {

            $this->doRegistration();

            $this->showPageRegistration();

        } else {

            $this->doStartSession();

            $this->performUserLoginAction();

            if ($this->getUserLoginStatus()) {

                $this->showPageLoggedIn();

            } else {

                $this->showPageLoginForm();

            }}}

    private function createDatabaseConnection()

    {

        try {

            $this->db_connection = new PDO($this->db_type . ':' . $this->db_sqlite_path);

            return true;

        } catch (PDOException $e) {

            $this->feedback = "PDO database connection problem: " . $e->getMessage();

        } catch (Exception $e) {

            $this->feedback = "General problem: " . $e->getMessage();

        }

        return false;

    }

    private function performUserLoginAction()

    {

        if (isset($_GET["action"])  $_GET["action"] == "logout") {

            $this->doLogout();

        } elseif (!empty($_SESSION['user_name'])  ($_SESSION['user_is_logged_in'])) {

            $this->doLoginWithSessionData();

        } elseif (isset($_POST["login"])) {

            $this->doLoginWithPostData();

        }}

    private function doStartSession()

    { session_start(); }

    private function doLoginWithSessionData()

    { $this->user_is_logged_in = true; }

    private function doLoginWithPostData()

    { if ($this->checkLoginFormDataNotEmpty()) {

            if ($this->createDatabaseConnection()) 

            { $this->checkPasswordCorrectnessAndLogin(); }}}

    private function doLogout()

    { $_SESSION = array();

        session_destroy();

        $this->user_is_logged_in = false;

        $this->feedback = "You were just logged out."; }

    private function doRegistration()

    { if ($this->checkRegistrationData()) {

            if ($this->createDatabaseConnection()) {

                $this->createNewUser(); }}

        return false; }

    private function checkLoginFormDataNotEmpty()

    {

        if (!empty($_POST['user_name'])  !empty($_POST['user_password'])) {

            return true;

        } elseif (empty($_POST['user_name'])) {

            $this->feedback = "Username field was empty.";

        } elseif (empty($_POST['user_password'])) {

            $this->feedback = "Password field was empty.";

        } return false; }

    private function checkPasswordCorrectnessAndLogin()

    {

        $sql = 'SELECT user_name, user_email, user_password_hash

                FROM users

                WHERE user_name = :user_name OR user_email = :user_name

                LIMIT 1';

        $query = $this->db_connection->prepare($sql);

        $query->bindValue(':user_name', $_POST['user_name']);

        $query->execute();

        $result_row = $query->fetchObject();

        if ($result_row) {

            if (password_verify($_POST['user_password'], $result_row->user_password_hash)) {

                $_SESSION['user_name'] = $result_row->user_name;

                $_SESSION['user_email'] = $result_row->user_email;

                $_SESSION['user_is_logged_in'] = true;

                $this->user_is_logged_in = true;

                return true;

            } else { $this->feedback = "Wrong password."; }

        } else { $this->feedback = "This user does not exist.";  }

        return false; }

    private function checkRegistrationData()

    { if (!isset($_POST["register"])) {

            return false; }

        if (!empty($_POST['user_name'])

             strlen($_POST['user_name']) <= 64

             strlen($_POST['user_name']) >= 2

             preg_match('/^[a-z\d]{2,64}$/i', $_POST['user_name'])

             !empty($_POST['user_email'])

             strlen($_POST['user_email']) <= 64

             filter_var($_POST['user_email'], FILTER_VALIDATE_EMAIL)

             !empty($_POST['user_password_new'])

             !empty($_POST['user_password_repeat'])

             ($_POST['user_password_new'] === $_POST['user_password_repeat'])

        ) {

            

            return true;

        } elseif (empty($_POST['user_name'])) {

            $this->feedback = "Empty Username";

        } elseif (empty($_POST['user_password_new']) || empty($_POST['user_password_repeat'])) {

            $this->feedback = "Empty Password";

        } elseif ($_POST['user_password_new'] !== $_POST['user_password_repeat']) {

            $this->feedback = "Password and password repeat are not the same";

        } elseif (strlen($_POST['user_password_new']) < 6) {

            $this->feedback = "Password has a minimum length of 6 characters";

        } elseif (strlen($_POST['user_name']) > 64 || strlen($_POST['user_name']) < 2) {

            $this->feedback = "Username cannot be shorter than 2 or longer than 64 characters";

        } elseif (!preg_match('/^[a-z\d]{2,64}$/i', $_POST['user_name'])) {

            $this->feedback = "Username does not fit the name scheme: only a-Z and numbers are allowed, 2 to 64 characters";

        } elseif (empty($_POST['user_email'])) {

            $this->feedback = "Email cannot be empty";

        } elseif (strlen($_POST['user_email']) > 64) {

            $this->feedback = "Email cannot be longer than 64 characters";

        } elseif (!filter_var($_POST['user_email'], FILTER_VALIDATE_EMAIL)) {

            $this->feedback = "Your email address is not in a valid email format";

        } else {

            $this->feedback = "An unknown error occurred.";

        } return false; }

 //没办法,不允许发这么多字;

请教几个PHP与MYSQL的问题 高手进来看下

1,密码对比问题,如果两个人的密码相同,该怎么办?这个情况是一定可能出现的,建议先查询输入的用户名,看用户是否存在,存在然后再匹配密码

2,增加和减少积分问题,用update,比如增加:update 表 set jifen=jifen+10 where ...

减少:update 表 set jifen=jifen-10 where ...

用php+mysql做一个题库系统,随机抽取五百题左右生成考试卷,最有效率的做法是什么?

php里面有array_rand函数,你要是一道题一道题的读出来,或许也可以尝试一下。但是要是一下子都读出来,即便这个函数效率可以的话,随机取出id数组,查询 “where id in 数组” 就不如直接在数据库里随机抽取记录。\x0d\x0a如何从数据表里随机抽取记录呢,想想办法还是有一些,就是不知道效率如何。有的是说用max_id*rand(),那一条一条抽取还是可以的。怎么批量随机抽取呢,可以试着排序,然后选取前500题,排序可以想办法用一些函数(选取一些执行效率高的),如何md5,sha1,这种。如果为了使结果更具有随机性,可以把字段值再与一个随机数运算一下。仅供参考。\x0d\x0a========================\x0d\x0a我想你还是用array_rand随机抽500个id存到数组,然后遍历数组吧。这样也避免了题目重复。在数据库里如果一次一条记录随机抽取,要考虑碰巧重复的问题。批量选取你就按上面我说的试试。

关于php与mysql题的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php与mysql题 php与mysql程序设计的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did210285
更新时间:2023-05-03   阅读:20次

上一篇: 西安php坑公司 西安php技术培训

下一篇:php爬虫demo php爬虫采集多级分类

最新资料更新

  • 1.php比较运算符价格 php中用于比较字符串的函数
  • 2.phptoast弹框 php 弹框
  • 3.phpsql过滤类 php过滤器
  • 4.PHP添加日期代码 php年月日时间代码
  • 5.php翻译sdk php翻译成中文是什么意思
  • 6.php存储的知识 php会话保存数据的两种方式是
  • 7.php每天更新数据 php数据库更新语句
  • 8.php内核源码剖析 php源码使用教程
  • 9.phpjson提交 phppost提交
  • 10.exec-php下载 php exe
  • 11.安卓phpapp 安卓php服务器
  • 12.php配置smtp php配置文件的文件名是什么
  • 13.腾讯php招聘 招聘 腾讯
  • 14.phpflv播放器 php视频播放
  • 15.php登录网站 php网页登录
  • 16.php中table行宽 php网页表格
  • 17.什么是php行为 什么是php,php有哪些优点
  • 18.php登录保护机制 php保持登录状态
  • 19.phpping测速 测试php性能工具
  • 20.php页面加ico php嵌入网页

CopyRight:2016-{hedonghua:year}{hedonghua:sitegs} 备案ICP:湘ICP备09009000号-16 {hedonghua:sitejym}
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]