PHP/Mysqli:为什么此代码会使插入行加倍?

2023-12-01

我的代码需要帮助;不知何故,我的代码创建了两个房间(它一次将两行插入表中),我不知道为什么。

(我需要每个插入都需要一个 id 才能知道我们在哪个房子中创建一个新房间。我的数据库包含表“house”和表“room”。表“room”有一个字段“house_id”,它是一个外键表“house”中的字段“id”。)

那是我的 php 页面:

<?php 
            // turn autocommit off
            mysqli_autocommit($con, FALSE);

            // fetch the houses so that we have access to their names and id
            $query = "SELECT name, id
                    FROM house";
            $result = mysqli_query($con, $query);
            // check query returned a result
            if ($result === false) {
                echo mysqli_error($con);
            } else {
                $options = "";
               // create an option
                while ($row = mysqli_fetch_assoc($result)) {
                    // $options .= "".$row['name']."";
                     $options .= "<option value='".$row['id']."'>";
                     $options .= $row['name'];
                     $options .= "</option>";
                }
            }

            include('templates/add_room.html');

            if ($_SERVER["REQUEST_METHOD"] == "POST") {
                $price = mysqli_real_escape_string($con, $_POST["price"]);
                $house = mysqli_real_escape_string($con, $_POST["house_id"]);

                $query = "INSERT INTO room (price, house_id)
                VALUES ('$price', '$house')";

                // run the query to insert the data
                $result = mysqli_query($con, $query);

                // check if the query went ok
                if ( $con->query($query) ) {
                    echo "<script type= 'text/javascript'>alert('New room created successfully with the id of {$con->insert_id}');</script>";
                    mysqli_commit($con);

                } else {
                    echo "There was a problem:<br />$query<br />{$con->error}";
                    mysqli_rollback($con);
                }
            }

            //free result set
                mysqli_free_result($result);

?>

这是我的 html 模板,其形式为:

<h2>Add new room</h2>
<form action='' method='POST'>
            <fieldset>
                <label for='price'>Price:</label>
                <input type='number' name='price'>
            </fieldset>
            <fieldset>
            <label for='house_id'>House:</label>
                <select name='house_id' required>
                    <option value='' disabled selected>Select house</options>
                    <?php echo $options; ?>
                </select>
            </fieldset>
            <button type='submit'>Add</button>
</form>

由于您使用查询函数两次,它插入了 2 行:

$result = mysqli_query($con, $query);

                // check if the query went ok
                if ( $con->query($query) ) {

因此,您需要将该条件语句更改为:

if ($result)  {

顺便说一句,使用准备好的语句,它比real_escape_string():

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

PHP/Mysqli:为什么此代码会使插入行加倍? 的相关文章

  • Laravel Redis 配置

    我目前正在使用 Laravel 和 Redis 创建一个应用程序 几乎一切都工作正常 我按照文档中的说明扩展了身份验证 用户可以订阅 登录 注销 我可以创建内容 所有内容都存储在 Redis 中 但我有一个问题 我无法运行 php arti
  • 为什么 count 比 $count 差

    我只是在查看不同问题的答案以了解更多信息 我看到一个answer https stackoverflow com a 4891402 429850这表明在 php 中编写这样的做法是不好的做法 for i 0 i
  • 动态重新定义 PHP 类函数?

    我试图弄清楚如何动态导入大量 PHP 类函数 例如 class Entity public function construct type require once type functions php person new Entity
  • snappy wkhtmltopdf 包装器将生成的 html 文件发送到浏览器

    我像鼹鼠一样用谷歌搜索 但找不到正确的方法 我正在使用 WKHTMLTOPDF Wrapper Snappy 创建 PDF 如何将使用generateFromHtml方法生成的pdf直接发送到浏览器 这就是我想做的 header Conte
  • CodeIgniter加入选择为

    我的数据库中有 2 个表需要加入 一张表是 artikelen 表 另一张表是 Collections 表 我目前有 this gt db gt select this gt db gt from collecties this gt db
  • 如何在 Yii2 应用程序中显示多个选择下拉列表中的选定值?

    我正在研究 Yii2 我正在使用这样的自定义数组创建多个选择下拉菜单 在控制器文件中 all groups Groups find gt where group created by id gt orwhere new Expression
  • 统计数据库中的注册用户数

    我想反映在我的网站上注册的人数 只有我拥有的代码不起作用 它让我知道它不可能 转换为字符串 另外 当我将其设置为在 HTML 中调用的函数时 我收到 connection 未定义的错误 require once connect php sq
  • AJAX 安全问题

    我希望能够解决一些关于 AJAX 安全性的问题 这是我试图理解的一个场景 假设我正在使用 AJAX 向页面请求一些半敏感材料 例如 我将把用户的 ID 传递给一个 php 文件 并返回一些关于他们自己的信息 现在 是什么阻止人们模拟此 Ja
  • 计算帖子中使用 WordPress 短代码的次数

    我有以下 WordPress 短代码功能 function wp shortcode static i 1 return i i return return add shortcode shortcode wp shortcode 这很好用
  • 如何从文件中获取整个函数

    好的 我现在正在逐行阅读一个文件 我知道文件中的每个函数名称 因为它是在 XML 文档中的其他位置定义的 应该是这样的 function function name 其中 function name 是函数的名称 我从 XML 文档中获取所
  • 将我的 Laravel 连接到外部数据库

    如何将 Laravel 连接到外部数据库 示例 我的本地计算机上有一个 Laravel 它在 xampp 上运行 我希望它连接到云服务器数据库 打开 env文件并编辑它 只需设置正确的外部数据库凭据 DB CONNECTION mysql
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • WordPress 子主题覆盖父主题包括

    我正在创建 WordPress 子主题 需要覆盖某些小部件模板 我正在尝试使用此方法来覆盖父主题调用 覆盖主题功能的正确方法 http www venutip com content right way override theme fun
  • PHP cURL 看不到 /etc/hosts 文件

    我在让 PHP cURL 库识别我在我的文件中创建的别名时遇到了麻烦 etc hosts file 这就是我的 etc hosts现在归档 192 168 0 20 www example dev 在另一端 192 168 0 20 Apa
  • 如何处理致命错误:cURL错误7:无法连接到xxxx端口443

    我有一个连接到第三方 API 的脚本 它是并且应该在 24 7 不间断循环上运行 我在重新启动循环之前在最后使用睡眠 问题是 有时第三方 API 会被拒绝 或者连接会因以下错误而中断 致命错误 未捕获的异常 GuzzleHttp Ring
  • 如何下载临时文件

    我正在尝试创建一个简短的 PHP 脚本 该脚本采用 JSON 字符串 将其转换为 CSV 格式 使用fputcsv 并使该 CSV 可作为下载的 csv 文件使用 我的想法是使用tmpfile 不用担心 cronjobs 或磁盘空间不足 但
  • Yii2 组件将数据传递给 __construct

    我有一个库 我想将其用作组件 在配置文件中我这样设置 components gt superLib gt class gt SuperLib construct gt first second Maybe Yii 2 have proper
  • Symfony VS CakePHP:哪一个最接近 PHP [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我主要是一名 Rails 开发人员 但有时 我必须使用 PHP 进行编码 因为 stackoverflow com更喜欢可以回答的问题 我想知道
  • 当php脚本通过ajax运行时显示进度条

    我有一个通过 ajax 向服务器提交值的表单
  • 为什么 0.5 mod 0.1 在不同的编程语言中结果不同?

    我有一个关于模数的问题 模运算求一个数除以另一个数的余数 我原本期望 0 5 0 1 0 的结果 但是当我在 PHP 或 net 中运行它时 我得到 0 1 我运行的 php 代码是 var dump fmod 0 5 0 1 在 net中

随机推荐

  • 将指针存储在窗口类的额外窗口内存中的示例

    我有一个代表文本框的类 在该类的构造函数中我称之为CreateWindow函数 我想在额外的窗口内存中存储指向该对象的指针 所以在WndProc函数我将获取指针 并将使用类成员 我尝试使用此代码执行此操作 但它不起作用 有人可以编写一个示例
  • REST 数组操作最佳实践

    我可以通过 REST 完全访问 foo 资源 name foo tags tag01 tag02 tag03 我想删除tag01 in tags array 通常我会GET foo and PUT foo它回来没有tag01 在这种情况下
  • Android Studio 运行 Espresso UI 测试时内存使用过多

    我注意到 在模拟设备上运行 Espresso UI 测试时 系统的内存使用量会无限增加 直到我重新启动 Android Studio 和模拟设备 经过检查 我可以看到我的 Android Studio 和模拟设备的内存使用量保持不变 但总体
  • Tornado/Python self.render("example.html") 忽略 CSS

    我是 Python 和一般编程的新手 我使用名为 Tornado 的网络服务器来 托管 我的网站 每当我使用 self render example html 这里的变量 生成动态 html 页面 生成的 html 页面没有合并任何 CSS
  • 如何处理flex中的嵌套注释

    我正在为支持嵌套注释的语言编写一个 Flex 扫描器 如下所示 我曾经在支持递归调用 lex 扫描器的 ocaml ocamllex 上工作 非常优雅 但我现在切换到c flex 如何处理这样的嵌套注释 假设只有注释可以嵌套在注释中 那么对
  • jQuery 对话框中的 Z 索引。自动建议列表未正确显示

    我在 jQuery 对话框中显示自动建议框时遇到问题 无论如何 自动建议列表都会显示在对话框下方 我尝试将 autosuggest 的 z index 属性设置为 gt 1004 但没有成功 下面是屏幕截图 这是我用来设置自动建议列表样式的
  • Java 浮点数学 - (英尺/米的转换)

    我认为这是一个非常基本的问题 我正在执行此功能 private double convertMetersToFeet double meters function converts Feet to Meters double toFeet
  • 购物车的“查看购物车商品”页面未正确分页

    我有一个 PHP 页面 用于检索我的数组中的数组 SESSION products 会议 该会话中的每个数组都是用户通过以下方式添加到其 购物车 中的产品 catalogue php页 目前我的会话有 11 个阵列 这意味着我已将 11 个
  • Blade 中的 Vue 组件

    我正在尝试使用this在我的刀片视图中 我有 vue文件和JS中的以下代码 import Multiselect from vue multiselect export default components Multiselect data
  • 将结果从 ReportMemoryLeaksOnShutdown 重定向到日志文件

    我想将内存泄漏检测添加到我们的自动化单元测试中 ReportMemoryLeaksOnShutdown 将检测任何内存泄漏 最大的问题是它将结果打印到模式对话框中 该对话框必须由用户手动关闭 这在构建服务器上运行的自动化单元测试中不起作用
  • 12:xx 在 SimpleDateFormat.format("hh:mm:ss") 中显示为 00:xx

    在以下代码中使用 SimpleDateFormatter format 时 12 00 到 12 59 之间的时间在 startDateText TextView 中显示为 00 00 到 00 59 而从 13 00 开始 它们正确显示为
  • 在clearcase中如何将不可修改的基线转换为可修改的?

    创建了一个新的 UCM 项目 并配置了多个基线 当我尝试从特定组件签出文件时 我不被允许签出 并且它说流可能是只读的 我可以查看流中的其他组件文件 所以我尝试运行以下命令 cleartool lsstream view MyBuildVie
  • 如何使用 python-docx 以编程方式在 MS Word 中的页面布局中实现列

    我需要实现word文档的设计 我必须使用 python docx 库以编程方式将该文档的页面布局设置为 2 列布局 请帮忙 我用谷歌搜索这个问题并关注你在 stackoverflow 和谷歌论坛上的评论 我解决了这个问题 下面的代码帮助了我
  • 如何在管理表单的日期字段中接受本地化日期格式(例如 dd/mm/yy)?

    是否可以自定义 django 应用程序以在管理表单的 DateField 中接受本地化日期格式 例如 dd mm yy 我有一个模型类 class MyModel models Model date models DateField Dat
  • 将日期转换为正确的格式

    我有一个网络服务 它通过以下方式返回我的日期 Wed Oct 31 11 59 44 0000 2012 但我希望它以这种方式还给我 31 10 2012 11 59 我知道应该使用 NSDateFormatter 来完成 但我现在不知道如
  • 在 PHP 中使用具有抽象类型的 WSDL

    我正在研究我们的 Web 应用程序和 Microsoft Exchange 2007 之间的集成 我正在使用 Exchange Web 服务 EWS 与 Exchange Server 进行通信 但是 我在使用 WSDL 时遇到了一些问题
  • 从 BroadcastReceiver 更新 Activity

    这个问题提出了一个有趣的问题 OP 有一个显示地图的应用程序 该地图需要使用通过 SMS 消息接收的位置标记进行更新 各个步骤相当简单 SMS 消息可以由BroadcastReceiver 标记可以通过ItemizedOverlay在一个上
  • 将 JTextArea 或 JTextPane 中的文本居中 - 水平文本对齐

    有没有办法像 JTextField 一样为 JTextArea 创建水平居中的文本 setHorizontalAlignment JTextField CENTER 有没有办法可以使用多行文本区域完成同样的事情 我找不到 JTextArea
  • Firebase 存储和访问控制允许来源

    我正在尝试通过 XMLHttpRequest 从 Firebase Storage 下载文件 但资源上未设置 Access Control Allow Origin 因此这是不可能的 有没有办法在存储服务器上设置这个标头 let xhr j
  • PHP/Mysqli:为什么此代码会使插入行加倍?

    我的代码需要帮助 不知何故 我的代码创建了两个房间 它一次将两行插入表中 我不知道为什么 我需要每个插入都需要一个 id 才能知道我们在哪个房子中创建一个新房间 我的数据库包含表 house 和表 room 表 room 有一个字段 hou