以下功能无效,我看不出原因。
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
答案 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,而不是将它们直接传递到您的查询中。
下次提示:
在您的问题中说明什么无效。你的期望是什么,实际发生了什么。