- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家好,我到处搜索答案,但没有任何内容满足代码:/
这是我的数据库表:
1 Form_ID int(11) AUTO_INCREMENT
2 identifiant varchar(10)
3 Ch varchar(6)
4 Date date
5 Unite varchar(10)
6 Catsoin varchar(30)
7 Soin varchar(30)
8 Duree varchar(10)
9 Debutsoin time
10 Finsoin time
我通过 php 表单在数据库中进行注入(inject),并且我的插入工作得很好。但为了提高效率,我需要检索用户当前的 Session_id
这就是我创建的表单:' $_SESSION['id']=$_POST['Identifiant'];'这种使用的问题是,当重新加载页面时,浏览器会创建一个新 session ,然后释放 session ID,因此此方法对我不起作用。
这就是 mysqli_insert_id() 发挥作用的地方。在数据库表中,我创建了 AUTO_INCRMENT 属性 Form_ID
,这是独一无二的。因此,我需要使用 mysqli_insert_id() 来捕获在客户端进行插入时创建的唯一 Form_ID。那是我没有成功的尝试:文件:InsertionBD.php
<?php
include('include/connexion.php');
$query = "Insert into `formulaire`";
$id = mysqli_insert_id($connexion);
IF(isset($_POST['UnitList'])... and so on
?>
并尝试在此处重新捕获此插入的 Id。If(isset()) 函数对输入类型 Button 使用react,因此当用户单击它时,会在 php 服务器端产生 react ,在这种特殊情况下,我需要 mysqli_insert_id( )** 上类文件:** Form.php
session_start();
include('include/config.php');
include('include/connexion.php');
$id=mysqli_insert_id($connexion);
$result = mysqli_query($connexion,"SELECT `identifiant`,`Ch`,`Date` FROM `formulaire` where
`Form_ID` = '".$id."'
");
If(isset($_POST['SelectID']))
{
//$_SESSION['id'] = mysqli_insert_id($connexion); -> not working since Session reload
echo "processing...<br/>";
echo "ID of last inserted record is: ".mysqli_insert_id($connexion);
while($row = mysqli_fetch_array($result))
{
$Recupid = $row['identifiant'] ;
$RecupCh = $row['Ch'] ;
$RecupDate = $row['Date'];
echo "<br><b>Votre identifiant :</b>". $Recupid.
"<br><b> Le code horaire choisi :</b> ".$RecupCh.
"<br><b> La date de la prestation : </b>".$RecupDate.
"<br><b> L'horaire de la prestation : </b>".$debut." <b>à</b> ".$fin ;
echo "<br>";
}
}
else
{
//I used superglobal $_Sessions before this code on this page but I did not show the code to simplify the view but session works fine
echo "<b>Your ID :</b>".$_SESSION['id']."<br />";
echo "<b>Your Code horaire :</b>".$_SESSION['Code']."<br />";
echo "<b>Your Date : </b>".$_SESSION['Date']."<br />";
echo "<b>Your First Plage horaire :</b>".$_SESSION['Debut']."<br />";
echo "<b>Your Second Plage horaire :</b>".$_SESSION['Fin']."<br />";
}
返回值为:
正在处理...最后插入的记录ID为:0
所以我明白我的 mysqli_insert_id() 函数没有指向任何内容吗?请问如何取回具体的Form_ID?
提前感谢您的帮助
最佳答案
来自手册http://php.net/manual/en/mysqli.insert-id.php
The mysqli_insert_id() function returns the ID generated by a query on a table with a column having the AUTO_INCREMENT attribute. If the last query wasn't an INSERT or UPDATE statement or if the modified table does not have a column with the AUTO_INCREMENT attribute, this function will return zero.
使用mysqli_insert_id()
之前运行的最后一个查询是选择
$result = mysqli_query($connexion,"SELECT `identifiant`,`Ch`,`Date` FROM `formulaire` where
`Form_ID` = '".$id."'
");
因此预期返回将为 0
运行插入后,您需要立即获取mysqli_insert_id()
的值。
编辑
The If(isset()) function reacts to a input type Button, so that when the user click on it creates a reaction in the php server side
也许您可以考虑将 id 添加到输入按钮提交的表单中,以便您可以访问它发布到的页面上的值?
也许使用隐藏字段,例如:
<input type="hidden" name="formulaire_id" value="<?php echo $id;?>" />
关于php : Problems getting the current session id or mysqli_insert_id(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26036034/
这个问题在这里已经有了答案: mysqli_insert_id: What if someone inserts another row just before I call this? (2 个答
我试图从 INSERT/UPDATE 查询中获取最后一个自动增量 ID,我正在尝试这种方式,但它不起作用,它每次都回显 id=0。 PHP require_once('conn.php'); $tem
使用the PHP manual我创建了以下代码: $query = "INSERT INTO inserir(nome) VALUES ('Stefanato');"; $listar = new
我有 mysql 问题,mysqli_insert_id() 从整个服务器或从插入该 ID 的特定用户返回记录?因为如果它从整体返回那么使用这个函数将不安全 最佳答案 上面@daan 的评论是完全错误
我正在使用 mysqli_insert_id() 获取表上的最后一个自动递增 ID,但它始终返回“0”。 $sql = "INSERT INTO inventory (SELECT * FROM tm
我正在构建一个登录系统,它使用 mysql 数据库 (PHP) 中的三个表,分别称为用户、 session 和登录。所有表都有一个自增索引。成功登录后,用户行通过存储在新登录行中的值链接到 sessi
我尝试在多个查询中使用 mysqli_insert_id,但我一直收到 无法添加或更新子行:外键约束失败。下面是我的代码: $con=mysqli_connect("Stuff");
在将产品添加到数据库方面需要一些帮助。 “mysqli_insert_id”行报告错误 这是我的代码: // Add this product into the database now $s
我有以下表格: thread: id, title, content, created thread_tags: tag_id, thread_id tag: id, name author_thre
在你问之前,我已经使用了堆栈溢出和谷歌的搜索功能! 在我的代码中,mysqli_insert_id始终返回0。 在我的“模型” -PHP-Class中,保存函数如下所示: $result = DB::
我正在尝试将最后一个 id 添加到数据库中的另一个字段,但我不知道该怎么做?这是我的代码: 这是我的类(class)连接 class Connect{ public static function
无法使 mysqli_insert_id 工作..ID 为 AUTO_INCRMENT,但仍然不起作用。 $query = "INSERT INTO categoriasdivisiones (tit
我必须使用对另一个表(FK)中的记录的引用。另一个表中的记录可能存在,也可能不存在,因此我可以使用它的 ID,也可以插入一个新记录,然后使用它的 ID。 我有以下代码: $con=mysqli_con
错误显示在这一行: $query1="UPDATE `users` SET password=''.md5(md5(mysqli_insert_id($link).$pass)).'
我有一个函数没有按照我的预期运行。它的目的是为选择查询返回一个行数组,或者为插入查询返回插入 id。由于某种原因,如果插入查询后跟选择查询,则测试查询是否为插入的函数部分会失败,因为 inesrt_i
在高流量应用程序中,mysqli_insert_id() 是否可能返回错误的 ID,或者混淆几乎同时执行的两个 INSERT 查询之间的 ID? 最佳答案 没有。 mysqli_insert_id 从
几个小时以来,我一直在尝试使这项工作正常进行,但似乎一无所获。我正在使用的代码如下。我正在处理一个 phpbb 页面,它解释了模板和 sql 查询设置。 $sql_query = 'INSERT IN
我有以下代码。应该返回表的最后一行的 mysqli_insert_id()(在本例中为“$last_row”)始终返回 0。为什么会这样? query($query); printf ("New Re
我有一个 mysql 表,它附加了一个触发器,可以将该表中的更改记录到第二个表中 CREATE TRIGGER log_table BEFORE UPDATE ON table1 FOR EACH
我不明白为什么 mysqli_insert_id() 返回的 id 与我预期的 id 不同。这是我的代码: $query = "INSERT INTO payments_table (payment_
我是一名优秀的程序员,十分优秀!