gpt4 book ai didi

php - 如何在不导致我的 sql 运行两次的情况下分配 php 返回值?

转载 作者:行者123 更新时间:2023-11-30 22:42:59 25 4
gpt4 key购买 nike

我正在制作一个处理表单的 wordpress 插件。

我有一个表单,在提交时会调用一个函数将值插入到数据库中。

从该函数中,我返回了自动递增的 clientID 值。

然后我将该返回值分配给同一页面上新表单中的新变量。

它有效,但我现在得到了两个数据库插入。似乎当我将新变量分配给函数时,它会运行插入语句两次。

我想要完成的是将用户插入函数中的第一个表并仅返回客户 ID,这样我就可以使用该 ID 插入另一个表。

如有任何帮助,我们将不胜感激。

提交时调用函数插入数据库的表单

<form action="" id="new_client_form" method="POST" onsubmit="return submit_new_client()">

包含DB代码并返回Client ID的函数

function submit_new_client () {

if (isset($_POST['submit'])) {
/////
$insertClient = $db -> exec("INSERT INTO client SET .......");

$clientId = $db -> lastInsertId();

echo $clientId .'Is the New client ID';//This is printing the correct ID(used for testing)

}
return $clientId;
}
add_action('init', 'submit_new_client');

新形式/我将变量分配给函数的地方

<?php
$client = submit_new_client();
if(isset($_POST['submit'])) {
echo "<p>The Client Id is</p>";
echo "$client";
} else {
echo "<p>No client ID</p>";
}
?>

例如,提交表单后,我会从函数中得到一个 Echo,说客户 ID 是 32。但是当我转到下一个表单时,它会说客户 ID 是 33。

最佳答案

首先,在 HTML 表单中,您有 onsubmit="return submit_new_client()onsubmit 属性用于调用 Javascript 函数,而不是 PHP 函数,所以我很惊讶竟然会调用 PHP 函数。

你能把完整的代码贴出来吗?

编辑:我对您调用的 add_action 函数进行了简短搜索。您确定此调用在某个时候没有调用您的 submit_new_client() 函数吗?请参阅我在此处找到的文档:https://codex.wordpress.org/Function_Reference/add_action

关于php - 如何在不导致我的 sql 运行两次的情况下分配 php 返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30586397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com