试图将数据插入mysql数据库

时间:2015-05-04 21:53:07

标签: php mysql

它正在连接数据库,但没有插入值 请帮我将表格值插入到注册表中 `

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

    $dbconnect = new mysqli('localhost','root','','tas');

    if ($dbconnect) {
        echo "connected to database";
    }
    else{
        echo "did not connect";
    }

    $fname = $_POST["fname"];
    $lname = $_POST["lname"];
    $cert = $_POST["certificate"];
    $sex =  $_POST["sex"];
    $mobile = $_POST["mobile"];
    $email  = $_POST["email"];
    $institution =  $_POST["institution"];
    $session    =   $_POST["session"];
    $media  =   $_POST["media"];

    $insert ="INSERT INTO registered(firstmame,lastname,certificatename,sex,mobile,email,institution,session,media)
     VALUES ($fname,$lname,$cert,$sex,$mobile,$email,$institution,$session,$media)" ;

     if (!$insert) {
        echo "</br>error id not insert";
     }

     else{
        echo"<br/> success";
     }
}

&GT;`

2 个答案:

答案 0 :(得分:4)

您的代码正在为变量分配字符串值。

$query = "whatever";

没有向数据库插入任何内容,因为该字符串永远不会被您的代码作为SQL(发送到数据库)执行。

要在数据库上执行该操作,您需要使用mysqli_函数,例如mysqli_query()

请考虑将预先准备好的陈述绑定占位符一起使用。

将可能不安全的值包含在SQL文本中会导致SQL注入漏洞。

注意:SQL文本中的字符文字需要用单引号括起来。

e.g。 VALUES ('abc','def')不是VALUES (abc,def)

<强>后续

这是使用带有绑定占位符的预准备语句运行INSERT的示例。

$sql = "INSERT INTO registered
( firstmame
, lastname
, certificatename
, sex
, mobile
, email
, institution
, session
, media
) VALUES 
( ? , ? , ? , ? , ? , ? , ? , ? , ?)";

if ($stmt = mysqli_prepare($dbconnect, $sql)) {
    mysqli_stmt_bind_param($stmt, 'sssssssss'
        , $fname
        , $lname
        , $cert
        , $sex
        , $mobile
        , $email
        , $institution
        , $session
        , $media 
        );
    mysqli_stmt_execute($stmt);
    echo "affected rows = " . mysqli_stmt_affected_rows($stmt);
    mysqli_stmt_close($stmt);
} else {
   echo "error in prepare " . mysqli_error($dbconnect);
}

参考:http://php.net/manual/en/mysqli.prepare.php

答案 1 :(得分:0)

您永远不会执行mysqli_query()。请执行查询并提供更多详细信息。