我有一个PHP类在数据库中插入POST数据。 db有2个表:“empleado”和“puesto”,其中puesto有2行。我想从表单中插入数据,但表“empleado”有一个外键,所以我做一个INSERT INTO SELECT作为预备语句。但是当我检查数据库时,表“empleado”是空的......
这是我第一次使用预备语句,所以我不知道我是否做得对。你能告诉我这是什么问题吗?
这些是“Empleado”类的功能:
public function __construct($host, $usuario, $pass, $db) {
$this->conexion = new mysqli($host, $usuario, $pass, $db);
}
function nuevoEmpleado($nombre, $puesto, $correo, $pass) {
$inserta1 = 'INSERT INTO empleado (nombre, idPuesto, correo, password)
SELECT ?, idPuesto, ?, ? FROM puesto
WHERE puesto = ?';
if($stmt = $this->conexion->prepare($inserta1)) {
$stmt->bind_param('ssss', $nombre, $correo, $pass, $puesto);
$stmt->execute();
$stmt->close();
}
}
这个文件名为“main.php”,在这里我创建了一个实例:
include('Empleado.class.php');
$empleado = new Empleado('localhost', 'root', 'mysql', 'prueba');
$empleado->listaPuestos();
if(isset($_POST['enviar'])) {
$empleado->nuevoEmpleado($_POST['nombre'], $_POST['puesto'],, $_POST['correo'], $_POST['pass']);
}
这是我的表格:
<form action="main.php" method="post">
<input type="text" placeholder="Nombre" name="nombre"/>
<label>Puesto</label>
<select name="puesto" id="jobs">
</select>
<input type="email" placeholder="aaaa@aaa.aaa" name="correo"/>
<input type="password" placeholder="contraseña" name="pass"/>
<input type="submit" name="enviar"/>
</form>
select由ajax填充。
提前致谢。