为什么我不能运行两个 mysqli 查询?第二个失败[重复]

2023-12-22

是否可以像这样有两个 mysqli 查询?

mysqli_query($dblink, "INSERT INTO images (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName')");
mysqli_query($dblink, "INSERT INTO images_history (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name, day, month, year) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName', '$day', '$month', '$year')");

基本上我想更新数据库中的两个表。有一个更好的方法吗?


这是可能的mysqli_multi_query() http://php.net/mysqli_multi_query.

Example:

<?php

$mysqli = new mysqli($host, $user, $password, $database);

// create string of queries separated by ;
$query  = "INSERT INTO images (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName');";
$query .= "INSERT INTO images_history (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name, day, month, year) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName', '$day', '$month', '$year');";

// execute query - $result is false if the first query failed
$result = mysqli_multi_query($mysqli, $query);

if ($result) {
    do {
        // grab the result of the next query
        if (($result = mysqli_store_result($mysqli)) === false && mysqli_error($mysqli) != '') {
            echo "Query failed: " . mysqli_error($mysqli);
        }
    } while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli)); // while there are more results
} else {
    echo "First query failed..." . mysqli_error($mysqli);
}

关键是你must use mysqli_multi_query如果您想在一次调用中执行多个查询。出于安全原因,mysqli_query不会执行多个查询以防止 SQL 注入。

还要记住以下行为mysqli_store_result。它返回FALSE如果查询没有结果集(其中INSERT查询没有)所以你还必须检查mysqli_error看到它返回一个空字符串,这意味着INSERT那是成功的。

See:
mysqli_multi_query http://php.net/mysqli_multi_query
mysqli_more_结果 http://www.php.net/manual/en/mysqli.more-results.php
mysqli_next_结果 http://www.php.net/mysqli_next_result
mysqli_store_结果 http://php.net/mysqli_store_result

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

为什么我不能运行两个 mysqli 查询?第二个失败[重复] 的相关文章

  • 递归获取数组的键并创建下划线分隔的字符串

    现在我得到了一个包含某种信息的数组 我需要从中创建一个表 例如 Student Address StreetAddress gt Some Street StreetName gt Some Name Marks1 gt 100 Marks
  • 使用 Laravel 4 验证多个文件上传

    如何在 Laravel 4 中验证上传文件的数组 我已将其设置为允许多个文件 并且已测试这些文件是否存在于 Input file files 数组中 但如何验证每个文件呢 这是我尝试过的 notesData array date gt In
  • Zend Framework 生成唯一的字符串

    我想生成一个唯一的 4 6 个字符长的字母数字字符串 以便与每个记录 用户 一起保存在数据库中 db 字段具有唯一索引 因此尝试保存预先存在的字符串会生成错误 现在我正在生成一个随机字符串并使用 try catch 因此在添加新记录时如果抛
  • openssl_pkey_get_details($res) 不返回公共指数

    我在用着这个例子 https stackoverflow com a 12575951 2016196使用 php 生成的密钥进行 javascript 加密openssl图书馆 但是 details openssl pkey get de
  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • MySQL/PDO::quote() 尽管使用 PDO::PARAM_INT 参数,但仍在整数周围加上引号

    无论我传递给什么值 数据类型对 它都会出现 pdo gt quote value type 它总是将其引用为字符串 echo pdo gt quote foo PDO PARAM STR foo as expected echo pdo g
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • 扩展蓝图类?

    我想覆盖timestamps 函数中发现Blueprint班级 我怎样才能做到这一点 e g public function up Schema create users function Blueprint table table gt
  • 从 .phar 存档中提取文件

    对于 Phar 文件 我完全错过了一些东西 我正在安装一个需要 phpunit pdepend 和其他依赖项的项目 我将它们作为 phar 文件获取 但是 我无法使用命令行工具 php 命令 从中提取文件 我用谷歌搜索了这个问题 但没有发现
  • 为什么 iconv 在 php:7.4-fpm-alpine docker 中返回空字符串

    给出以下代码
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • PHP 脚本可以在终端中运行,但不能在浏览器中运行

    我正在尝试执行exec命令 但我遇到了问题 当我运行以下代码时 当我通过浏览器运行它时它不起作用 但如果我把输出 str将其复制并粘贴到终端中 它工作得很好 造成这种情况的原因是什么 我该如何解决 目前我正在运行localhost php
  • 覆盖控制器 Symfony 3.4/4.0

    我目前正在尝试覆盖 FOSUserBundle 中的控制器 在新的文档中 https symfony com doc 3 4 bundles override html https symfony com doc 3 4 bundles o
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • php 错误 fopen(): 文件名不能为空

    发送带有附件代码的电子邮件工作正常 最近我们已将文件传输到另一个托管服务器 idk 发生了什么 它显示以下错误 警告 fopen 第 106 行 home hugerecruitmetnt public html validatecva p
  • CURL 中的 data-urlencode 是什么意思?

    我搜索了很多个小时试图弄清楚 php curl 中的 data urlencode 是什么 我尝试过这个 但我认为这是不对的 xmlpost object1 file https www lob com goblue pdf 在文档中是 d
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • 简单的 PHP 表单:电子邮件附件(代码 Golf)

    想象一下 一个用户想要在其网站上放置一个表单 该表单将允许网站访问者上传一个文件和一条简单的消息 该消息将立即通过电子邮件发送 即 该文件未存储在服务器上 或者如果该文件存储在服务器上 仅暂时 作为文件附件 并在邮件正文中添加注释 查看更多

随机推荐

  • Spring Security 身份验证入口点

    我已通过设置在 Spring MVC 应用程序上启用了 Rest 支持AuthenticationEntryPoint在我的 security context xml 上
  • 在 Backbone.js 中处理视图和模型对象

    在不需要时处置模型 视图实例的最有效方法是什么 通常 我将所有逻辑放在控制器 路由器中 它决定应该创建什么视图以及应该向它们提供什么模型 通常 有一些处理程序函数 对应于不同的用户操作或路由 每次执行处理程序时我都会创建新的视图实例 当然
  • dplyr 中波浪号和点符号的含义

    Summary我正在读一本article https dplyr tidyverse org articles colwise html关于 dplyr 的跨函数的主题 看第一个使用示例 我看到了以前从未见过的运算符的使用 我不知道它们是否
  • VisNetwork 与 Shiny 的点击事件

    我已经使用 Shiny 中的 visNetwork 包构建了我的网络 我想单击一个节点 然后显示数据框中有关该节点的信息 我已经能够使用单击和近点函数对散点图执行此操作 例如此处显示的 Shiny 示例中的函数 http shiny rst
  • 我可以在 C 程序中使用 cstdio 吗?

    当我添加时 我在 cstdio 中收到大量错误 include
  • 订购 ObservableCollection 而不创建新的 [重复]

    这个问题在这里已经有答案了 我有以下代码来重新订购ObservableCollection
  • 如何合并嵌套字典?

    我有一个嵌套字典 python 3 9 列表 看起来像这样 records Total Owner Available 15 to 34 years 1242 Total Owner Available 35 to 64 years 569
  • Keras 中的指标是如何计算的?

    我想知道 Keras 如何计算一个指标 是否是自定义指标 例如 假设我有以下指标 它产生预测与真实情况之间的最大误差 def max error y true y pred import keras backend as K return
  • 多个 uniqid() 调用不唯一

    我有一个有趣的例子 其中多次重复调用uniqid 当本地托管在 XAMPP 上时 不会生成唯一的编号 这个唯一的 ID 会重复 5 到 20 次 然后就会神秘地发生变化 然而 作为一个有趣的转折 该代码可以工作完美在我们的生产服务器上 这就
  • Chrome 扩展如何基本上 cURL 其他页面? [复制]

    这个问题在这里已经有答案了 我正在考虑编写一个 Chrome 扩展程序 需要在某个网站的某个动态页面上抓取一些链接并分析链接页面的内容 实际上 我对编写浏览器扩展了解不多 所以在我致力于学习如何编写之前 我想看看它是否可行 我确实知道扩展通
  • Python 描述符中实例和所有者的用途是什么?

    我正在尝试理解 Python 中的描述符 我似乎无法理解描述符方法中的实例和所有者是什么 object get self instance owner 现在我已经阅读了文档 https docs python org 3 reference
  • 在 Ruby 中如何测试一个值是否为素数?有简单的方法和困难的方法吗?

    我正在尝试创建一个程序来测试某个值是否为素数 但我不知道如何进行 这是我的代码 class DetermineIfPrime def initialize nth value nth value nth value primetest en
  • 如何配置 Visual Studio 2013 以与 Git/SourceTree 一起使用

    我希望能够将 Git 与 Visual Studio 2013 一起使用 我也希望能够使用 SourceTree 但我不知道两者如何一起使用 我在 Visual Studio 中创建了一个项目 并将其配置为使用 Git 但我不知道存储库是在
  • javascript 中的范围表现得很奇怪

    对象通过 JavaScript 中的引用传递 意味着该对象从任何地方发生的变化都应该得到反映 在本例中 console log a 的预期输出为 function change a b a x added a b assigning a a
  • 基于管道分隔列创建新的 pandas 列并可能重复

    这个问题与我之前的问题的良好解决方案有关 基于 Pandas 中的管道分隔列创建多个新列 https stackoverflow com questions 48010030 create multiple new columns base
  • 如何(轻松)删除 Xcode 6 中 Interface Builder 中的约束

    假设您已选择一个对象 并且 实用程序 面板中的 大小选择器 已打开 您可以看到应用于对象的约束列表 在约束列表中 您可以单击小齿轮并选择删除 在 Xcode 6 中不能 IB中删除约束还有几种方法 在文档大纲中找到约束并以这种方式将其删除
  • SQLAlchemy ORM __init__ 方法与

    In the SQLAlchemy ORM 教程 http docs sqlalchemy org en latest orm tutorial html以下代码作为将映射到表的类的示例 gt gt gt from sqlalchemy i
  • 如何在 Laravel 中创建两种类型的用户

    我想问一下如何在laravel中创建两种类型的用户 我有两张桌子 一张给顾客 一张给客户 我的问题是如何发挥这种作用 我是否必须制作两个不同的模型或使用模型 User 并在中间件中制作一些功能 谢谢 如果您正在寻找最简单的解决方案 您可以添
  • 另一个与Cross-XHR相关的

    我知道有很多关于 Access Control Allow Origin 不允许 的问题 错误 但我尝试过其中一些但没有成功 一些约会 我正在尝试构建一个 dev tools tab 扩展 我可以像这样触摸 flickr API这个例子 h
  • 为什么我不能运行两个 mysqli 查询?第二个失败[重复]

    这个问题在这里已经有答案了 是否可以像这样有两个 mysqli 查询 mysqli query dblink INSERT INTO images project id user id image name date created lin