将值从表单插入数据库

时间:2014-01-30 20:25:45

标签: php mysql mysqli

我做错了什么?我的代码不起作用

if (isset($_POST['submit'])){


    $fecha = ($_POST['fecha']);//date
    $hora_in = ($_POST['hora_incial']); //time
    $hora_fin = ($_POST['hora_final']);//time
    $comentarios =($_POST['comentarios']);//text

    //inserting data order
    $order = "INSERT INTO control ('Fecha','Hora_incial','Hora_final','Comentarios') VALUES('".$fecha."','".$hora_in."','".$hora_fin."','".$comentarios."')";

    //declare in the order variable
    $result = mysql_query($order);  //order executes
    if($result){
        echo("<br>Input data is succeed");
    } else{
        echo("<br>Input data is fail"); 
    }
}

它显示我总是失败。连接正常,但我无法插入数据

谢谢你的帮助!! :)

2 个答案:

答案 0 :(得分:1)

删除列名称周围的引号并替换为反引号。

(`Fecha`,`Hora_incial`,`Hora_final`,`Comentarios`)

引号不能用于表名或列名

行重写:(编辑添加$con

if (isset($_POST['submit'])){

$fecha = mysqli_real_escape_string($con,$_POST['fecha']);//date
$hora_in = mysqli_real_escape_string($con,$_POST['hora_incial']); //time
$hora_fin = mysqli_real_escape_string($con,$_POST['hora_final']);//time
$comentarios = mysqli_real_escape_string($con,$_POST['comentarios']);//text

$order = "INSERT INTO control (`Fecha`,`Hora_incial`,`Hora_final`,`Comentarios`) VALUES('$fecha','$hora_in','$hora_fin','$comentarios')";
$result = mysqli_query($con,$order);

if(! $result )
{
  die('Could not enter data: ' . mysqli_error($con));
}

else { echo "Success"; }

}

我还建议您切换到mysqli_*使用prepared statements功能,而不是使用已弃用的mysql_*功能。加PDO也是一种选择。

请阅读以下内容:

答案 1 :(得分:0)

将您的查询更改为

$order = "INSERT INTO control 
        ."(Fecha,Hora_incial,Hora_final,Comentarios)" 
        ." VALUES"
        ."('$fecha','$hora_in','$hora_fin','$comentarios')";

我不明白为什么你在“。$ variable”中使用点。

如果您遇到问题,请先尝试回复您的查询,例如

echo $order; 

并在你的phpmyadmin中过去(如果你有的话)。