当前位置: 首页 > java >正文

laravel学习并连接mysql数据库

  1. 下载laravel
    laravel下载地址
  2. phpstudy_pro\WWW\laravel.env文件
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=clgl  //你的数据库名称
DB_USERNAME=root  //你的账号
DB_PASSWORD=root  //你的密码
  1. 修改phpstudy_pro\WWW\laravel\config\cors.php文件,允许前端访问
<?phpreturn ['paths' => ['api/*', 'sanctum/csrf-cookie'],'allowed_methods' => ['*'],'allowed_origins' => ['http://localhost:5173', 'http://127.0.0.1:5173'], // Vue 的地址'allowed_origins_patterns' => [],'allowed_headers' => ['*'],'exposed_headers' => [],'max_age' => 0,'supports_credentials' => true, // 如果需要携带 cookie
];
  1. 修改phpstudy_pro\WWW\laravel\app\Http\Kernel.php文件
protected $middlewareGroups = ['web' => [\App\Http\Middleware\EncryptCookies::class,\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,\Illuminate\Session\Middleware\StartSession::class,\Illuminate\View\Middleware\ShareErrorsFromSession::class,\App\Http\Middleware\VerifyCsrfToken::class,\Illuminate\Routing\Middleware\SubstituteBindings::class,],'api' => [// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,'throttle:api',\Illuminate\Routing\Middleware\SubstituteBindings::class,\Fruitcake\Cors\HandleCors::class, //确保中间件已启用 确保这一行存在],];
  1. 在数据表中增加一个表
    在这里插入图片描述
  2. 写两个方法getQuestion和updateUsername,一个属于get请求一个属于post请求
<?php
namespace App\Http\Controllers;use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;class QuestionController extends Controller
{public function getQuestion(Request $request){// 1. 只允许 POST 请求if ($request->method() !== 'GET') {return response()->json(['status' => '405','status_message' => 'Method Not Allowed','content' => []], 405);}// 2. 获取 POST 参数$username = $request->input('username');// 3. 验证参数是否为空if (empty($username)) {return response()->json(['status' => '400','status_message' => 'Username is required','content' => []], 400);}// 4. 建立数据库连接// DB::select("SELECT * FROM question WHERE username = '$username'");$conn = mysqli_connect("127.0.0.1", "root", "root", "clgl");if (!$conn) {return response()->json(['status' => '500','status_message' => 'Database connection failed','content' => []], 500);}// 5. 设置字符集mysqli_query($conn, "SET NAMES utf8");// 6. 转义输入(防止 SQL 注入)$username = mysqli_real_escape_string($conn, $username);$sql = "SELECT * FROM question WHERE username = '$username'";$result = mysqli_query($conn, $sql);if (!$result) {mysqli_close($conn);return response()->json(['status' => '500','status_message' => 'SQL Error: ' . mysqli_error($conn),'content' => []], 500);}$data = mysqli_fetch_assoc($result);// 7. 返回 JSON 响应(使用 return 而不是 echo)if (empty($data)) {return response()->json(['status' => '404','status_message' => 'NO DATA FOUND','content' => []], 404);} else {return response()->json(['status' => '200','status_message' => 'success','content' => $data], 200);}// 8. 关闭连接(实际在 return 后不会执行,但逻辑上应确保关闭)mysqli_close($conn);}/*** 修改 username 的 POST 方法*/public function updateUsername(Request $request){// 1. 只允许 POST 请求if ($request->method() !== 'POST') {return response()->json(['status' => '405','status_message' => 'Method Not Allowed','content' => []], 405);}// 2. 获取 POST 参数:old_username 和 new_username$oldUsername = $request->input('old_username');$newUsername = $request->input('new_username');// 3. 验证参数是否为空if (empty($oldUsername) || empty($newUsername)) {return response()->json(['status' => '400','status_message' => 'old_username 和 new_username 是必填参数','content' => []], 400);}// 4. 使用 Laravel DB 门面更新数据(推荐方式)try {$affected = DB::table('question')->where('username', $oldUsername)->update(['username' => $newUsername]);if ($affected === 0) {return response()->json(['status' => '404','status_message' => '未找到匹配的记录,更新失败','content' => []], 404);}return response()->json(['status' => '200','status_message' => '用户名更新成功','content' => ['old_username' => $oldUsername,'new_username' => $newUsername]], 200);} catch (\Exception $e) {return response()->json(['status' => '500','status_message' => '数据库错误: ' . $e->getMessage(),'content' => []], 500);}}
}
  1. 下载phpstudy,启动Apache和Mysql
    在这里插入图片描述
  2. 设置访问位置
    在这里插入图片描述
  3. 输入http://localhost即可访问到laravel界面,即为配置成功;随后在地址中输入http://localhost/getQuestion?username=小红 ;可以访问到本地数据库中的数据
    在这里插入图片描述

在这里插入图片描述
10. 启动本地的vue项目尝试连接一下,测试是否存在跨域,以及post接口是否可以访问
(未完待续)

http://www.xdnf.cn/news/18918.html

相关文章:

  • 煤矸石检测数据集VOC+YOLO格式3090张2类别
  • Python爬虫获取1688商品列表与图片信息
  • AGDO-BP+NSGAII梯度下降优化算法优化BP神经网络+NSGAII多目标优化算法,三目标和四目标案例
  • 【Oracle篇】伪列之ROWID:行数据的物理地址(基于物理地址对行数据最快速度的查询、更新、删除)(第四篇,总共六篇)
  • Python 前后端框架实战:从选型到搭建简易全栈应用
  • 使用MP4视频格式链接地址的自适应视频弹窗实现方案HTML代码
  • 共享云服务器替代传统电脑做三维设计会卡顿吗
  • 移远 × 高通:从开源生态到场景验证,共筑端侧AI新生态
  • 电脑开机显示器不亮
  • 私域电商新范式:开源AI智能名片链动2+1模式S2B2C商城小程序赋能传统行业流量转化
  • electron离线开发核心环境变量npm_config_cache
  • LangGraph - API多种访问方式
  • Diagnosing bias and variance|诊断偏差和方差
  • Redis哨兵机制:高可用架构的守护神!⚔️ 主从秒级切换实战指南
  • Elasticsearch核心配置详解与优化
  • 【Linux】Docker洞察:掌握docker inspect命令与Go模板技巧
  • 免费开源图片压缩工具|绿色版本地运行,支持批量压缩+格式转换,不上传数据,隐私安全有保障!
  • 毕业项目推荐:27-基于yolov8/yolov5/yolo11的电塔缺陷检测识别系统(Python+卷积神经网络)
  • 软件测试工程师面试题(含答案)
  • 重写BeanFactory初始化方法并行加载Bean
  • 6年前抄写的某品牌集成灶-蒸汽炉
  • Linux笔记10——shell编程基础-4
  • GraphRAG——v0.3.6版本使用详细教程、GraphRAG数据写入Neo4j图数据库、GraphRAG与Dify集成
  • 图像增强和评价
  • 脑电分析——学习笔记
  • 【系统架构设计(一)】系统工程与信息系统基础上:系统工程基础概念
  • 【Ubuntu系统实战】一站式部署与管理MySQL、MongoDB、Redis三大数据库
  • 负载均衡之平滑加权轮询(Smooth Weighted Round Robin)详解与实现
  • MIME类型与文件上传漏洞 - 网络安全视角
  • AI解决生活小事系列——用AI给我的电脑做一次“深度体检”