gpt4 book ai didi

php - 使用pdo在两个mysql表中插入一条记录

转载 作者:搜寻专家 更新时间:2023-10-30 23:40:16 24 4
gpt4 key购买 nike

我一直在尝试使用两个不同的查询来执行此操作,但只有第一个有效。 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 绑定(bind)该值。

$query = "INSERT INTO ficha (fechaingreso,carrera,alumno_id) VALUES (:fechaingreso,:carrera,:alumno_id)";

缺少下划线 - alumnoidalumno_id 不同。

$stmt->bindValue(':alumnoid',$ultimo);

正如@FirstOne 已经提到的那样:解决方案是在两个变量之一中添加或删除 _ 下划线。

关于php - 使用pdo在两个mysql表中插入一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35758061/

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