[英]Insert a record in two mysql tables with pdo
我一直在嘗試使用兩個不同的查詢來執行此操作,但是只有第一個有效。 PDO對我來說是新的,這就是為什么我有些困惑。
<?php
include 'database.php';
$nombres=$_POST['tnombres'];
$apellidos=$_POST['tapellidos'];
$carrera=$_POST['tcarrera'];
$con->beginTransaction();
try{
// insert query
$query = "INSERT INTO alumno (nombres,apellidos) VALUES (:nombres,:apellidos)"`;`
// prepare query for execution
$stmt = $con->prepare($query);
// bind the parameters
$stmt->bindValue(':nombres',$nombres,PDO::PARAM_STR);
$stmt->bindValue(':apellidos',$apellidos,PDO::PARAM_STR );
$stmt->execute();
$ultimo=$con->lastInsertId();
$query = "INSERT INTO ficha (fechaingreso,carrera,alumno_id) VALUES (:fechaingreso,:carrera,:alumno_id)";
$stmt = $con->prepare($query);
$fecha= date('d-m-Y');
$stmt->bindValue(':fechaingreso',$fecha);
$stmt->bindValue(':carrera',$carrera);
$stmt->bindValue(':alumnoid',$ultimo);
$stmt->execute();
$con->commit();
echo 'Datos insertados';
echo '<p><a href=index.php>Inicio</a></p>';
echo "<p>Numero de ultimo registro insertado: ",$ultimo;
}
// show error
catch(PDOException $e){
$con->rollback();
echo $e->getMessage();
}
就像我說的那樣,即使第一個查詢完美地執行,甚至從插入的最后一條記錄中捕獲ID都可以,但是第二個查詢卻不執行它必須做的事情。 我有此錯誤消息
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\escuela\crear.php on line 32
您的腳本中有錯字。 在您的INSERT
您使用alumno_id
但是稍后您嘗試通過alumnoid
綁定值。
$query = "INSERT INTO ficha (fechaingreso,carrera,alumno_id) VALUES (:fechaingreso,:carrera,:alumno_id)";
缺少下划線- alumnoid
與alumno_id
。
$stmt->bindValue(':alumnoid',$ultimo);
正如@FirstOne早已提到的那樣:解決方案是在兩個變量之一中添加或刪除_
下划線。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.