问题标签 [mysql-insert-id]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 使用mysql_insert_id插入大量数据
我想使用 PHP 和 MySQL 将数据插入数据表及其关联的多对多表中。数据表的自增主ID用于多对多表。所以,我需要知道要插入多对多表的数据表的 ID。
我目前的想法是,解决这个问题的最佳方法是使用循环,它首先插入数据表,然后使用 mysql_insert_id() 插入多对多表。这是解决这个问题的最好方法吗?
此外,我是否需要担心使用该函数获取错误的 ID?许多工作人员会同时使用这个数据脚本,所以我担心来自一个工作人员查询的 ID 最终会在调用另一个工作人员的 mysql_insert_id() 时返回。这是一个有效的担忧,如果是这样,我该如何处理?
php - php/mysql/javascript - 页面加载后需要设置 GET 变量(包括在 url 中)
这是一个很难描述的问题。
大图:一个 ajaxed 对话框提交到一个页面以创建一个新的内容集记录。创建内容集记录后,这个新创建的内容集应该是选中的内容集,所有创建或修改的内容都需要附加新创建的内容集id。内容集 ID 是在页面加载期间使用 MySQL 中的自动增量字段创建的。
问题详细信息:我有一个使用 ajax 拉出内容集创建对话框的页面。对话框提交到一个空白 URL,因为它可能从多个位置调用,我希望对话框提交到它被调用的任何 url。在对话框提交到调用它的页面后,页面上的一些 PHP 在 MySQL 数据库中创建一个内容集记录。我需要使用 GET 变量将新创建的记录的插入 ID 从页面传递到页面(最简单的方法,因为我已经通过这种方式传递了分页变量),但是由于必须在获取插入 ID 之前加载页面,所以我没有填充 GET 变量需要占据的所有位置的方式(在页面链接、php $_GET 变量、url 上)。
需要考虑的一些事项:
- 我将通过会话变量传递新创建的插入 ID,除非这会在有人点击后退按钮时导致问题,并且会话变量不会恢复到其先前的值。
- 我会使用 Javascript 和 PHP 来更改使用此插入 id 变量的各个位置,除非他们拉出另一个提交到空白 url 的 ajaxed 对话框,空白 url 当然不会有新的 GET 变量。此外,这似乎很草率,维护起来将是一场噩梦。
- 在创建记录后,我会在添加新的 GET 变量后重定向回同一页面,除非我无法传递 POST 变量,从而使错误和成功消息完全令人头疼。我不想使用 GET vars 告诉页面要显示什么错误/成功消息,因为 GET vars 使用 $_SERVER['QUERY_STRING'] 以及空白链接在页面之间传递。
- 我根本无法在创建后使新创建的内容集自动加载。这使用户需要自己加载新创建的内容集,这是我想避免的。
有什么优雅的解决方案吗?由于网站的设置方式,这个问题可能非常独特,但必须有人处理过类似的事情。我希望不必为了解决这个小问题而过多地改变网站设计。欢迎任何想法。
php - 调用 mysql_insert_id 给出警告
嗨,我在尝试检索插入 ID 时收到此警告
警告:mysql_insert_id():提供的参数不是有效的 MySQL-Link 资源
在
php - mysql_insert_id,当我将它放在函数中时不返回最后插入的 id
当我将 mysql_insert_id 放在函数中时,它不会返回最后插入的 id。
我有点困惑为什么它没有。
这是我的代码:
提前致谢
亚当
php - 使用单个表单将数据插入到两个不同的表中,尽管需要将第一个插入的最后一个自动 id 插入到下一个插入中
我有一个表格,我需要在一个表格中插入一些信息。然后从该插入中获取自动增量 id 并在下一个插入语句中使用它。除了抓取最后一个 id 之外,我得到了一切工作。mysql_insert_id()?
php - mysql_insert_id() 在 PHP 更新后停止工作
我正准备将实时 Web 服务器从 PHP 5.2.12 更新到 5.3.5。在准备中,我已经在第二台服务器上执行了更新,该服务器是实时服务器(“开发”服务器)的镜像。两台服务器都使用 FreeBSD,并且都使用端口来安装 PHP 和 MySQL。实时服务器使用 MySQL 5.0.89,新升级的开发服务器使用 5.1.54。
以下代码在实时服务器 (PHP 5.2.12/5.0.89) 上按预期执行,返回刚刚插入的 AUTO_INCREMENT 行的值。该函数是整个站点使用的数据库类的一部分,其中“$this->_private['cn']”是资源链接。
在开发服务器 (5.3.5/5.1.54) 上,返回为零。注意 - 不是 null(如果查询失败则返回),而是零。我可以查看表格并确认实际上已插入新行,并且自动增量字段已正确推进。该字段值当前为 121288,因此它在 PHP 的整数范围内。我什至在一个简单的页面上重新创建了该类的代码并获得了相同的结果。mysql_error() 表示没有失败。错误报告设置为 E_ALL,而不是在那里窥视。
啊!有任何想法吗?
php - 你在 mysql_insert_id() 的括号里放了什么?
我尝试设置这样的变量:$test_id = mysql_insert_id($dbc);
因为我想获取插入的最后一行的 id。我能够连接到数据库并插入该行,但下一行(设置 $test_id)它说:supplied argument is not a valid MySQL-Link resource
。有任何想法吗?
这是代码:
$dbc 是这样定义的:
$dbc = @mysqli_connect (DB_HOST, DB_USER, DB_PASS, DB_NAME);
php - 致命错误:未捕获的异常 'mysqli_sql_exception' 带有消息 'No index used in query/prepared statement'
当我运行以下代码时,我收到错误消息
致命错误:未捕获的异常 'mysqli_sql_exception' 带有消息 'No index used in query/prepared statement'
这就是能干的模式——
php - 获取自动递增的 int 并插入另一列
我正在尝试创建一个新行,其中图像名称与 recordID 相同(加上“.png”)。recordID 是一个自动递增的 int。
这创造了一个新的记录:
..这将获得记录ID:
但是如何将 recordID 的值粘贴到 image_name 列(加上“.png”)中,而不必再次搜索呢?
mysql - 如何用一条 SQL 语句 upsert 两个数据库表?
下面描述了两个数据库表。星号突出显示主键。
我想根据表url_references中相应条目的存在来插入或更新帖子。达到此目的的最佳SQL 命令组合是什么?我想避免在PHP中处理关于插入或更新的决定。
以下场景描述了使用 PHP 命令的替代分步行为。
场景 1:插入新条目。
场景 2:更新现有条目。
编辑 1:请注意,我无法直接检查帖子中的id!我想根据他们的url作为主键来管理(插入/更新)帖子。