功能不起作用

时间:2013-08-28 14:46:47

标签: php function pdo

以下功能无效,我看不出原因。

function nuevoContacto($_POST) {
    try {
        include('func/usarBases.php');
        $mensaje="INSERT INTO `t_contactos`(`id_c`, `nombre`, `telefono`, `telefono2`, `corto`, `celular1`, `celular2`, `email`, `puesto`, `id_a`) VALUES (NULL,'$_POST[nombre]','$_POST[tel1]','$_POST[tel2]','$_POST[corto]','$_POST[cel1]','$_POST[cel2]','$_POST[email]','$_POST[puesto]','$_POST[id_a]')";
        $hacerConsulta = $base->prepare($mensaje);
        $hacerConsulta->execute();
    }
    catch( PDOException $e) {
        echo "<p>Error Connection: " .$e->getMessage()."</p>";
    }   
    $hacerConsulta=null;
}

一旦调用它,代码就会中断并且不再执行任何操作。 但是当你在主代码中使用它时它可以工作

抱歉,我已经重新编辑了源代码然后仍然无法正常工作,包括usarBases.php是conector pdo,名为$ base

2 个答案:

答案 0 :(得分:2)

它必须是什么

function nuevoContacto($base)
{
    $sql  = "INSERT INTO  t_contactos VALUES (NULL,?,?,?,?,?,?,?,?,?)";
    $data = array(
        $_POST['nombre'],
        $_POST['tel1'],
        $_POST['tel2'],
        $_POST['corto'],
        $_POST['cel1'],
        $_POST['cel2'],
        $_POST['email'],
        $_POST['puesto'],
        $_POST['id_a']
    );
    $stmt = $base->prepare($sql);
    $stmt->execute($data);
}

必须使用$ base作为参数而不是$ _POST

进行调用

答案 1 :(得分:0)

您的功能中缺少数据库连接。将以下内容添加到函数的最开头:

global $base;

当您将global $base添加到您的函数中时,您将能够在函数中使用它,而无需重写整个函数。

无关的说明,但值得一提。

对SQL注入开放,并且您没有使用准备好的语句。您应该稍后使用占位符和binding,而不是将它们直接传递到您的查询中。

下次提示:
在您的问题中说明什么无效。你的期望是什么,实际发生了什么。