SQLi 并检索特定记录

2023-12-25

环顾四周,看到了很多 MySQL 答案,但没有看到 MySQLi.. 我正在尝试返回我选择的 1 行。 目前我只能返回第一行。

我想要实现的是,让我的主数据库通过 ID 链接,当您单击 ID 时,可以在另一页上仔细查看记录。

<?php

$connect = mysqli_connect("localhost", "root", "", "mydb");
$query = "SELECT name, surname FROM info ORDER BY id";
$record = mysqli_query($connect, $query);
@$num_results = mysqli_num_rows($record);

$row = mysqli_fetch_assoc($record);

$fname = $row['name'];
$surname  = $row['surname'];

print $fname;
print $surname;



?>

为了执行您所要求的操作,首先创建一个用户列表:

$connect = mysqli_connect("localhost", "root", "", "mydb");
$query = "SELECT name, surname FROM info ORDER BY id";
$record = mysqli_query($query, $connect);

while($row = mysqli_fetch_assoc($record)){
    $user = $row['name'] . ' ' . $row['surname'];
    echo '<a href="user.php?uid=' . $row['id'] . '">' .$user . '</a></br>';
}

这将创建一个包含所有用户的列表,如下所示:

<a href="user.php?uid=1">Bart Simpson</a></br>
<a href="user.php?uid=2">Matt Damon</a></br>

等等。

当你点击原始页面中的用户链接时,应该由user.php中的代码进行处理:

$connect = mysqli_connect("localhost", "root", "", "mydb");
$query = "SELECT name, surname FROM info WHERE id = ?"; // returns one line identified by id - you can use something else if you're guarateed the value is unique in your table
$stmt = mysqli_prepare($connect, $query);
mysqli_stmt_bind_param($stmt, 'i', $_GET['uid']);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $name, $surname);
mysqli_stmt_fetch($stmt);

我敢打赌你能猜到现在会发生什么,不是吗?没错,您可以在此页面上回显单个用户的数据:

$user = $name . ' ' . $surname;
echo $user;

NOTES:

  1. 连接代码可以放置在单独的文件中,并在需要时包含在页面中。
  2. 您可以编写一个函数来处理您编写的每个查询。
  3. 为了防止 SQL 注入的可能性,我使用了prepared http://en.wikipedia.org/wiki/Prepared_statement的陈述MySQLi http://php.net/manual/en/mysqli.quickstart.prepared-statements.php. Even 转义字符串 http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string不安全!
  4. 一般来说,我的编码会更加一致,每次都以相同的方式执行查询。这样做将减少故障排除时间,并使您的代码更易于其他人阅读。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLi 并检索特定记录 的相关文章

  • Google Drive 服务帐户上传的位置

    我正在尝试使用服务帐户将文件上传到我的 Google 云端硬盘 当我部署此代码时 我不希望用户给予授权 我希望他们上传到我的帐户 我通过 PHP 使用它 下面是我到目前为止的情况 这段代码是基于官方文档给出的例子 当我运行 php 脚本时
  • 获取资源 #id 3 错误

    当我运行此命令时 得到资源 id 3 结果 请查看我的代码并帮助我解决这个问题 拜托
  • 考虑到我的图像链接存储在MySQL数据库中,如何通过php显示存储在文件夹中的图像

    作为良好的做法 我只将图像链接存储在数据库中 问题是 我应该如何存储图像的链接 假设它在 c 上 c image jpg 我应该使用哪段 PHP 代码来显示该图像 我只显示路径 我该怎么做才能显示图像 我可以用这个吗 query SELEC
  • 包含 WordPress 之外的 WordPress 内容

    我正在寻找构建 WordPress 网站的移动版本 并将其大部分内置于静态文件中 但我试图从运行移动网站的外部 PHP 文件内部访问 WordPress 内容 如何在不手动编写 SQL 查询的情况下访问循环或数据库 Edit 为了澄清一下
  • 在 WordPress 中挂钩 AJAX

    我一直在深入研究 Javascript 和 AJAX 的世界 我非常接近 但由于某种原因 我认为我没有正确地连接到 wordpress ajax 函数 我已经仔细阅读了文档和这个 认为 99 都在那里 这个应用程序的作用是有一个项目列表 每
  • StrRev() 不支持 UTF-8 [重复]

    这个问题在这里已经有答案了 我正在尝试编写一个代码来替换非阿拉伯支持的程序中支持的阿拉伯文本因为我需要在替换后反转文本 但它显示一些垃圾内容而不是想要的结果 这是代码 结果 After Reverse 我需要它是原来的样子 但相反 不是垃圾
  • 在路线中使用中间件的车队购物车,但我在项目中找不到任何 $routemiddleware...甚至在 kernel.php 中也找不到...我在哪里可以找到它?

    在路线中使用中间件的车队购物车 但我在项目中找不到任何 routemiddleware 甚至在 kernel php 中也找不到 我在哪里可以找到它 Laravel 版本 5 7 护照版本 7 5 CMS 舰队购物车 内核 php name
  • 递归树遍历 - 如何跟踪递归级别?

    我基本上试图从表示树结构的多维数组构建 html ul li 嵌套列表 下面的代码工作正常 但我想改进它 我需要一种方法来跟踪递归级别 以便我可以将不同的类应用于不同的级别 向生成的输出添加缩进等 function buildTree tr
  • MySQL分层存储:搜索所有父母/祖父母等。给定子节点 id 的节点?

    我使用分层模型存储类别 如下所示 CATEGORIES id parent id name 1 0 Cars 2 0 Planes 3 1 Hatchbacks 4 1 Convertibles 5 2 Jets 6 3 Peugeot 7
  • Codeigniter子域路由

    我正在尝试在 CodeIgniter 框架上运行的网站上设置博客脚本 我想在不对现有网站代码进行任何重大代码更改的情况下执行此操作 我认为创建一个指向另一个控制器的子域将是执行此操作的最干净的方法 我设置新设备所采取的步骤Blog涉及控制器
  • 分页当前链接未突出显示

    我遇到了一个奇怪的问题 我当前的分页链接未突出显示 我制作的分页网址如下所示 site com list 50 some value 一切工作正常 但当前视图中的分页链接未突出显示 我检查了CSS 没问题 我猜问题出在库上 这是我的代码 我
  • Laravel - 重复键批量插入更新大数据集

    我有大约 80k 条记录 每天需要多次运行插入 更新脚本 INSERT INTO my rankings id rank VALUES 1 100 2 99 3 102 80000 3 ON DUPLICATE KEY UPDATE ran
  • 获取 PHP 网站的根 URL

    我目前正在开发一个 PHP 项目 正在寻找一种方法来获取网站根目录的 URL 我的根目录有一个配置文件 所以我正在考虑使用它来找出 基本 URL 我正在寻找一种动态执行此操作的方法 以便我可以找到网站根目录的 URL 即http domai
  • 如何更改数组键从 1 而不是 0 开始[重复]

    这个问题在这里已经有答案了 我在某个数组中有值 我想重新索引整个数组 以便第一个值键应该是 1 而不是零 即 默认情况下 PHP 中的数组键从 0 开始 即0 gt a 1 gt b 我想重新索引整个数组以从 key 1 开始 即1 gt
  • 如何确定网站的语言

    我有一个网站的网址 需要找出该网站使用哪种语言 无论是西班牙语 法语 意大利语等 该网站的顶级域名是 com 这根本没有帮助 我无法简单地检查字符串是否包含 de fr 或任何其他国家 地区代码 我试图得到lang的属性html标签 但有很
  • 返回导航缓存 - IE

    当我在 IE 11 上运行 Web 应用程序时 收到如下警告消息 DOM7011 此页面上的代码禁用了后退和前进缓存 为了 更多信息 请参阅 http go microsoft com fwlink LinkID 291337 http g
  • 未定义的变量:$_SESSION

    我越来越E NOTICE当核心 CakePHP 文件尝试引用从未设置或未设置的会话时 会出现错误 cake libs cake session php line 372 function read name null if is null
  • 从 array_map 匿名函数内部调用类方法

    我正在尝试从一个对象中调用我的对象的方法之一array map匿名函数 到目前为止 我收到了预期的错误 致命错误 不在对象上下文中时使用 this 我知道为什么我会收到此错误 我只是不知道如何实现我想要的目标 有人有任何建议吗 这是我当前的
  • Laravel 中间件将变量返回给控制器

    我正在对用户进行权限检查 以确定他们是否可以查看页面 这涉及首先通过一些中间件传递请求 我遇到的问题是 在将数据返回到视图本身之前 我在中间件和控制器中复制相同的数据库查询 这是设置的示例 路线 php Route get pages id
  • PHP Session Id 在页面之间发生变化

    我有一个问题 我在 2 个页面之间丢失了 PHP 会话 session start 包含在一个名为 session inc php 的文件中 该文件包含在每个需要设置会话的页面中 这适用于网站上除一个特定页面 member profile

随机推荐

  • 创建易于维护的复制构造函数

    考虑下面的类 class A char p int a b c d public A const A 请注意 我必须定义一个复制构造函数才能执行 p 的深层复制 这有两个问题 大多数字段应该简单地复制 一张一张地复制它们既丑陋又容易出错 更
  • mysql搜索变音符号不敏感?

    我如何使变音符号不敏感 ex 这个带有变音符号的波斯字符串 巴里 巴里 巴里 巴里 巴里 巴里 巴里 巴里 巴里 巴里 与 mySql 中删除的变音符号不同 巴里 巴里 巴里 巴里 巴里 巴里 巴里 巴里 巴里 巴里 巴里 有没有办法告诉
  • R:聚合字符串[重复]

    这个问题在这里已经有答案了 我有一个数据框ModelDF具有包含数字和字符值的列 例如 Quantity Type Mode Company 1 Shoe hello Nike 1 Shoe hello Nike 2 Jeans hello
  • 无法在结构化流上评估 ML 模型,因为 RDD 转换和操作是在其他转换内部调用的

    这是结构化流的一个众所周知的限制 1 我试图使用自定义接收器来解决它 接下来 modelsMap是一个字符串键的映射org apache spark mllib stat KernelDensity models and streaming
  • sql中视图和表的区别

    可能的重复 视图和表在性能上的差异 https stackoverflow com questions 4576589 difference between views and tables in performance SQL 中视图和表
  • 在配置单元配置上应用授权策略时出错:无法创建目录 ${system:java.io.tmpdir}\${hive.session.id}_resources

    I run Hadoop 3 0 0 alpha1在 Windows 上并添加Hive 2 1 1到它 当我尝试用以下命令打开蜂巢直线时hive命令我收到错误 Error applying authorization policy on h
  • 如何在MySQL数据库中插入文件?

    我想使用 Web 服务在远程 Web 服务器上的 MYSQL 数据库中插入一个文件 我的问题是 什么类型的表列 例如 varchar 等 将存储文件 如果是文件 插入语句会有所不同吗 按 MySQL 类型划分的文件大小 TINYBLOB25
  • 如何在 Spring MVC 3.0 中的表单中传递隐藏值?

    如何在 Spring MVC 3 0 中的表单中传递隐藏值 我无法使用以下方法为隐藏字段分配值
  • 正则表达式从完整文件路径获取不带扩展名的文件名

    如何从以下文件路径中提取不带扩展名的文件名 D Projects Extract downtown second pdf 以下正则表达式为我提供了带扩展名的文件名 e g downtown second pdf以下正则表达式给出不带扩展名的
  • 尝试发送大尺寸图像时 WebSocket 断开连接

    我正在使用 java 和 javascirpt 在 localhost 测试 WebSocket 运行 Tomcat 7 0 42 并且中间没有代理 它可以很好地通过 websocket 发送文本和小尺寸图像 但是 当尝试发送大尺寸照片时
  • 与同时异步任务的 SQLite 的多个连接

    在我的场景中 它有 Sync Class 与后台的 AsyncTasks 同步 从我的应用程序到我的服务器 每当我的应用程序执行一个需要更改 SQLite 数据的操作时 第一步我的应用程序会更新我的本地数据库 第二步会在后台抛出一个 Asy
  • 如何解决错误:找不到包根?

    我正在运行命令 devtools use testthat 我收到错误 错误 找不到包根目录 为什么会出现这种情况 devtools现在似乎要求用户setwd path to package 即使函数像devtools release 有p
  • 如何使用 PDFplumber 只提取 pdf 文件中没有表格的文本?

    我想使用 NLP 模块处理一些 pdf 文件 然后我想从所有现有表中清除这些文件 这是使用 pdfplumber 提取表格的代码 import pdfplumber pdf pdfplumber open file pdf page pdf
  • Ltac:通过回溯重复策略 n 次

    假设我有一个像这样的策略 取自 HaysTac 它搜索一个参数来专门化一个特定的假设 Ltac find specialize in H multimatch goal with v gt specialize H v end 然而 我想写
  • 预期异常断言

    我需要为下一个函数编写一个单元测试 我看到我可以使用 ExpectedException 这是要测试的功能 public static T FailIfEnumIsNotDefined
  • 升级到 Rails 3.2.11 后 Capistrano 部署失败

    我有生产 Rails 3 2 3 应用程序 我用它来使用 capistrano 进行部署 当我决定将 Rails 升级到 3 2 11 时 我执行了以下步骤 更改 Gemfile 中的 Rails 版本 运行 捆绑更新轨道 从供应商 缓存
  • 实体框架 IsRowVersion() 没有并发检查

    我们有一个表 其中有一列名为Version映射为 SQLrowversion 这样做是因为我们有一个映射到我们数据的外部系统 该系统依赖于每次表更新时都会更改的该列 最初我们希望通过 SQL 来处理此问题 但现在我们发现存在乐观并发异常 虽
  • Android Studio 的 VSCode 键盘快捷键

    有没有办法在 Android Studio 的键盘映射设置下添加 VSCode 作为选项 Under File gt Settings gt Keymap 列出了许多其他选项 但它们都与 VSCode 相似 事实上 JetBrains 已经
  • Alembic 检测到已经存在的表,因此它尝试再次创建它们

    我的动态表模型如下 在数据库中没有测试列 我想用 alembic 更新它 class Animation Base tablename Animation id Column Integer primary key True index T
  • SQLi 并检索特定记录

    环顾四周 看到了很多 MySQL 答案 但没有看到 MySQLi 我正在尝试返回我选择的 1 行 目前我只能返回第一行 我想要实现的是 让我的主数据库通过 ID 链接 当您单击 ID 时 可以在另一页上仔细查看记录