检查是否已经是用户然后插入数据库 php

2024-03-26

如果我想插入数据库,我的代码可以工作,但是我检查用户是否已经存在不起作用。

*我认为这个想法是检查该用户名是否已经存在一行,如果是,则不要将该用户添加到数据库中,否则

$email = $_POST['email'];
$password= password_hash($_POST['password'], PASSWORD_BCRYPT, $options);
$username= $_POST['username'];

$result = mysqli_query($mysqli, "SELECT username FROM users WHERE username = '$username'");
$row_count = $result->num_rows;
if($row_count == 1){
    echo'User exists';
}else{
$query = "INSERT INTO users (username, email, password) VALUES(?, ?, ?)";
$statement = $mysqli->prepare($query);

//bind parameters for markers, where (s = string, i = integer, d = double,  b = blob)
$statement->bind_param('sss', $username, $email, $password);

if($statement->execute()){
     print 'Success! ID of last inserted record is : ' .$statement->insert_id .'<br />'; 
}else{
     die('Error : ('. $mysqli->errno .') '. $mysqli->error);
}
$statement->close();
}

你已经混合了Procedural style & Object oriented style用于执行查询。

使用时,

1) 程序风格

$result = mysqli_query($mysqli, "Your Query");

用这个,$row_count = mysqli_num_rows($result);

2)面向对象风格

$result = $mysqli->query("Your Query");

用这个,$row_count = $result->num_rows;

因此,根据您的代码,您正在使用面向对象的风格。所以,你需要改变

$result = mysqli_query($mysqli,"SELECT username FROM users WHERE username = '$username'");

to

$result = $mysqli->query("SELECT username FROM users WHERE username = '$username'");

编辑后的代码。

$email = $_POST['email'];
$password= password_hash($_POST['password'], PASSWORD_BCRYPT, $options);
$username= $_POST['username'];

$result = $mysqli->query("SELECT username FROM users WHERE username = '$username'");
$row_count = $result->num_rows;
if($row_count == 1)
{
    echo 'User exists';
}
else
{
    $query = "INSERT INTO users (username, email, password) VALUES(?, ?, ?)";
    $statement = $mysqli->prepare($query);

    //bind parameters for markers, where (s = string, i = integer, d = double,  b = blob)
    $statement->bind_param('sss', $username, $email, $password);

    if($statement->execute())
    {
         print 'Success! ID of last inserted record is : ' .$statement->insert_id .'<br />'; 
    }
    else
    {
         die('Error : ('. $mysqli->errno .') '. $mysqli->error);
    }
    $statement->close();
}

欲了解更多信息,请检查此mysqli_num_rows 与 ->num_rows http://php.net/manual/en/mysqli-result.num-rows.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查是否已经是用户然后插入数据库 php 的相关文章

  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码
  • 如何在 PHP 中从字符串类名实例化? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何创建返回方法名称的新实例 不幸的是我收到这个错误 错误 类名必须是有效的对象或字符串 这是我的代码 class Foo public f
  • PHP 从命令行启动 gui 程序,但 apache 不启动

    首先 我阅读了有类似问题的人的一些帖子 但所有答案都没有超出导出 DISPLAY 0 0 和 xauth cookies 这是我的问题 提前感谢您的宝贵时间 我开发了一个小库 它使用 OpenGL 和 GLSL 渲染货架 过去几天我将它包装
  • 收到警告“标头不能包含多个标头,检测到新行”

    我正在用 oops 进行编码 以便用 PHP 上传图像 但是提交图片后却出现警告 标题不能包含多个标题 检测到新行 下面是我的函数 它给出了错误 public function ft redirect query if REQUEST UR
  • 在 Laravel 中的编辑表单上获取选定选项

    我的网站订单有一个可编辑的表单 并且有以下字段 User quantity note status 我在此表单中还有其他选项 但只有这些字段对我来说很重要 以便能够获取默认值 例如 我希望能够查看用户默认订购的数量 然后我可以更改它或保留它
  • PHP - 警告:strpos() [function.strpos]: 空分隔符是什么意思?

    警告 strpos function strpos 空分隔符是什么意思 我有这个 if strpos 039 text false text str replace 039 text 猜测一下 我会说 text是一个空字符串 感谢马克指出细
  • Ajax文件上传

    我想使用 Ajax 和 php 上传文件 我有一个表格
  • Cakedc.users => 总是重定向到主页

    我在新的 Cakephp 安装上使用插件 CakeDC Users 我有两个控制器 PagesController php CardsController php Pages 有 1 个操作 Beta 它是主页 Cards 有两个操作 索引
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • 切换到 mysqli 是个好主意吗?

    我正在考虑为我的所有 php 项目切换到 mysqli 我的代码编写方式 我运行非常简单的网站并构建了自己的基本框架 我在所有网站上使用该框架 我在修改函数和类时不应该遇到太多问题 然而 我只听说过关于准备好的语句的积极的事情 除了一些关于
  • 将IP保存到数据库中

    当用户登录时 我想将他们的 IP 保存在数据库中 我该怎么做呢 MySQL 字段最适合使用哪种类型 获取IP的PHP代码是什么样的 我正在考虑将其用作登录 会话内容的额外安全功能 我正在考虑使用用户现在拥有的 IP 检查用户从数据库登录的
  • PHP-docker容器中的环境变量

    我想在我的 docker 容器中显示一个环境变量 PHP 脚本如下所示 我使用 OpenShift 来启动容器 PHP 容器显示 env is 现在我更改容器的 dc 配置 oc env dc envar USER Pieter deplo
  • 带 url 参数的 Laravel post 路由

    我面临着幼虫路由的大墙 我似乎找不到解决方案 我在视图模板中有此表单
  • Composer 无法获取 github

    今天 我尝试通过运行来安装 Laravelcomposer create project laravel laravel 5 1 myproject prefer dist我收到此错误 Could not fetch https api g
  • php oracle客户端oci8安装出现什么问题

    我尝试了安装 PHP Oracle 客户端的所有过程 1 我安装了客户端版本8和32位 2 我在php ini中取消了oci的注释 3 重新启动Wamp 4 不确定是否真的安装 但我在 php ini 中得到了引用 5 但仍然无法连接 泰汉
  • php如何生成动态list()?

    根据我的理解 这就是 list 的工作原理 list A1 A2 A3 array B1 B2 B3 所以在帮助下list 我们可以相应地从数组中分配值 这是我的问题 如何生成动态list 1 基于数据库返回结果 我不确定有多少 但我将其全
  • PHP LDAP 查询获取特定安全组的成员

    我正在努力让 LDAP 查询工作来为我提供安全组的成员 我们的活动目录结构设置为 DC domain DC co dc uk然后 我们有一个名为 公司用户 的 OU 其中有一个用于 IT 和标准的 OU 在这些中我们创建了用户 所以我被设置
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • 如何将图像从 Android 应用程序上传到网络服务器的特定文件夹中

    如何将图像从 android 移动到 Web 服务器上的指定文件夹 这是我的安卓代码 package com example bitmaptest import java io ByteArrayOutputStream import ja
  • 我可以让 swagger-php 在查询字符串上使用数组吗?

    我使用 Swagger php 当我定义查询字符串上的参数时 它可以是一个数组 但据我所知 它不支持这种查询字符串 https api domain tld v1 objects q 1 q 5 q 12 我相信这会被设定in the co

随机推荐

  • MySQL触发器与事务插入或更新

    我正在使用 mysql db 和 java 所以在我的应用程序中我需要使用触发器 但我需要在插入或更新时保存它 当在表A中插入新记录时 触发器将完成在另一个表B中插入一些信息的工作 同样 当对表A中的记录进行更新时 触发器将更新表B中的记录
  • PHP:数组的索引、元素、键、值之间有区别吗?...它们是同一件事吗?

    当处理PHP arrays 我经常在这里使用这样的术语 Array Key Array Index Array Element Array Value 有人可以吗 PLEASE in simple术语解释了其中每一个的含义基本上 means
  • Visual C++ 中的嵌套注释?

    是否可以在 Visual C 中启用嵌套注释 如果有的话 我似乎找不到开关 C 标准中不允许嵌套注释 Visual C 支持该标准 抱歉 没有嵌套评论
  • 服务可以在 onBind 期间获取对 Activity 的引用吗?

    我有一项服务基本上管理媒体播放器播放实例podcasts 一旦活动绑定到服务 它就可以执行播放 暂停 停止等操作 我使用服务是因为我希望播客即使在活动被销毁后也能继续播放 我希望该服务能够在发生错误或正常状态更新时将消息发送回活动 该服务是
  • 如何在 Django-Registration 中使用不同的表单

    Django Registration 在 forms py 文件中有几个表单类 一是 类 RegistrationFormTermsOfService RegistrationForm 我需要对 Django 注册代码的其余部分进行哪些更
  • 会话在控制器方法中变为空

    我有以下控制器 在该控制器中我创建了会话来保存IENUMERABLE数据集 HttpPost ValidateInput false public ActionResult Create Brochure IEnumerable
  • Swift:一个数组中的不同对象?

    一个数组中是否可以有两个不同的自定义对象 我想在一个中显示两个不同的对象UITableView我认为最简单的方法是将所有对象放在一个数组中 根据您想要对数组进行多少控制 您可以创建两种对象类型都实现的协议 该协议不需要包含任何内容 可能是
  • 当拥有 @objcMembers 私有动态变量时 @objc 冗余?

    因此 我将 Realm 与 Swift 结合使用 并使用 objcMembers 关键字标记我的类 但是当我尝试创建一些私有变量时 Xcode 强制我在这些私有变量旁边添加 objc 这是有意的行为吗 看来这对我来说是多余的 objcMem
  • deepcopy 不尊重元类

    我有一堂课 根据设计 必须遵循单例图案 所以我继续使用元类 一切都运行良好 直到报告了一个错误 总而言之 deepcopy ied 我的实例单例类不是相同的实例 我可以通过从基础继承来解决这个错误单例 type 类 但我宁愿不这样做 原因在
  • 我如何确保 Spring roo 生成的方面是由依赖项目编织的?

    我有一个春天Roo多模块项目 我注意到在另一个项目中包含包含我的域模型的 jar 模块后 各个方面还没有被编织给我留下了没有任何可用的 getter setter 的域类 如何确保 Spring roo 生成的切面是由依赖项目编织的 EDI
  • 如何在没有 Windows iTunes 的情况下在 iPhone 上安装 IPA [已关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 在没有 Mac 或不使用 iTunes 的情况下 如何在 iPhone 上安装 iPhone 应用程序 IPA 另外 如果这还不够困难
  • Qt 程序挂起(无响应)直到函数结束然后再次开始工作

    我在 Qt 中有一个 UI 应用程序 有几个函数可以运行大规模 SQL 查询 返回数千个结果 当单击运行此查询的按钮时 UI 窗口立即变为 无响应 但是我可以从控制台输出中看到 所有内容实际上仍在后台运行 一旦函数结束 数据就会按预期显示
  • mvc4 中没有为此对象定义无参数构造函数

    using Michell ClaimsAuditAdmin Models using Mitchell ClaimsAuditAdmin Repositories using Mitchell ClaimsAuditAdmin Web M
  • 为什么 sys.exit() 会导致回溯?

    根据如何在不回溯的情况下退出Python https stackoverflow com q 1187970 3357935 呼叫sys exit 在 Python 脚本中应该静默退出而不进行回溯 import sys sys exit 0
  • 面向 Android 12 及更高版本的应用需要为“android:exported”指定显式值 [Cordova]

    当我在 GitHub 中运行 Apk 时 出现错误 当我在 GitHub 中构建 Apk 时 无法定义清单内的某些内容 因为它每次都是新鲜构建的 我所能做的就是在 Config Xml 文件中 添加后android exported fal
  • 在 Android Edittext 中设置特定文本的文本颜色

    如果用户键入一个字符串并且它包含 我想将文本的颜色更改为红色 我尝试过使用 textwatcher 但出现堆栈溢出错误 我只想在 开头时更改颜色 代码如下 topic addTextChangedListener new TextWatch
  • 可重入锁用例

    我对Java的多线程概念很差 我正在了解 ReentrantLock 的功能和用法 我发现它比同步更灵活 并且添加了更多功能 我可以看到上面提到的例子并且我很好地理解了 我无法弄清楚它到底对业务有何帮助的实时场景 我认为最好避免僵局 有人可
  • 对话框中的 Xtext DSL 嵌入式编辑器

    我是 xtext 的新手 我已经使用 xtext 创建了 DSL 并且生成了工件 这生成了具有许多功能 如内容辅助和语法着色 的编辑器 现在的问题是我想将编辑器嵌入到对话框中 为了实现此目的 我使用嵌入式编辑器 我能够获取嵌入式编辑器并将其
  • C++ 父类对齐

    是否可以指定父类的对齐方式 例如类似的东西 未编译 template
  • 检查是否已经是用户然后插入数据库 php

    如果我想插入数据库 我的代码可以工作 但是我检查用户是否已经存在不起作用 我认为这个想法是检查该用户名是否已经存在一行 如果是 则不要将该用户添加到数据库中 否则 email POST email password password has