我想执行一个查询,将插入ID插入其中一个列
我想知道如何获取插入ID 我读到了这个答案Get inserted id from mysql insert procedure 但它讨论了如何在查询后获取插入ID,并且我想在查询时获取它
我尝试做:
$stmt = $db->prepare("INSERT INTO `files` (`name`, `fname`) VALUES (?, LAST_INSERT_ID() + ?)") or die($db->error);
$stmt->bind_param('ss', $name, $uniqid);
但它的剂量工作,我总是得到56,也是我需要做的事情吗?
答案 0 :(得分:0)
插入后保存它会更简单,更好。在实际插入发生之前,您也不太可能获得正确的id。
最可靠的方法是使用交易。
答案 1 :(得分:0)
CONCAT(string1, string2, ...)
不是MySQL中的字符串连接运算符。使用LAST_INSERT_ID()
。
在有线协议中,mysql在每个查询之后向客户端返回与$last_id = $db->insert_id;
相同的值,主动提供,并且大多数库提供了访问最近返回的值的方法。你没有提到,但看起来你在php中使用mysqli,所以你正在寻找这个:
<!-- <form action="<?php// echo base_url();?>LoginController/Register" method='get'> -->
<?php echo form_open(base_url('LoginController/Register'),['method'=>'post'])?>
<p><span id="sprytextfield1">
<label for="tn">Full Name</label>
<input class="form-control" input type="text" name="full_name" placeholder="Please Enter Your Full Name" style="width:50%" ><?php echo form_error('full_name'); ?>
<span class="textfieldRequiredMsg"> </span></span> <span id="sprytextfield2">
<label for="tjt">Designation <?php echo form_error('des'); ?><br>
<br>
<input type="radio" name="des" value="pm">
Project Manager
<input type="radio" name="des" value="ceo">
CEO<br>
<input type="radio" name="des" value="dev">
Devoloper </label>
</span></p>
<p><span> <span class="textfieldRequiredMsg"></span></span> <span id="sprytextfield3">
<label for="te">Email</label>
<input class="form-control" input type="text" name="email" placeholder="Please Enter Your Email" style="width:50%" ><?php echo form_error('email'); ?>
<span class="textfieldRequiredMsg"></span></span> <span id="sprytextfield4">
<label for="tc">Company</label>
<input class="form-control" input type="text" name="company" placeholder="Please Enter Your Company Name" style="width:50%" ><?php echo form_error('company'); ?>
<span class="textfieldRequiredMsg"></span></span> <span id="sprytextfield5">
<label for="tun">User Name</label>
<input class="form-control" input type="text" name="user_name" placeholder="Please Enter Your User Name" style="width:50%" ><?php echo form_error('user_name'); ?>
<span id="sprytextfield6">
<label for="tpw">Password</label>
<input class="form-control" input type="password" name="password" placeholder="Please Enter Your Password" style="width:50%" ><?php echo form_error('password'); ?>
<span class="textfieldRequiredMsg"></span></span> <span id="sprytextfield7">
<label for="tpw2"> Confirm Password</label>
<input class="form-control" input type="password" name="cpassword" placeholder="Please Re Enter Your Password" style="width:50%" ><?php echo form_error('cpassword'); ?>
<span class="textfieldRequiredMsg"></span></span> </p>
<table width="385" cellspacing="50px">
<tr>
<th width="75"><button type="submit" class="btn btn-lg btn-primary">Create Account</button></a>
</th>
<th width="154"> <input name="Reset" type="reset" class="btn btn-lg btn-primary" >
</th>
</tr>
</table>
<p> </p>
</form>
看起来好像是要发送第二个查询来向数据库询问id,但它不是。它返回先前存储的值。