准备好的声明插入不起作用

时间:2015-04-07 20:22:58

标签: php forms oop mysqli prepared-statement

我有一个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填充。

提前致谢。

0 个答案:

没有答案