插入 cpanel phpmyadmin 时查询数据库时出错


Error querying database when inserting into cpanel phpmyadmin

<?php
    $fname=$_POST['fname'];
    $mname=$_POST['mname'];
    $lname=$_POST['lname'];
    $college_name=$_POST['college_name'];
    $semester=$_POST['semester'];
    $contact=$_POST['contact'];
    $email=$_POST['email'];

    $dbc = mysql_connect('localhost','XXXX',"XXXX",'XXXXX')
            or die('error connecting to MYSQL server');
    echo kkk;
    $query = "INSERT INTO tab_m_registration(fname, mname, lname, college_name, semester, contact, email)".
            "VALUES(`$fname`, `$mname`, `$lname`, `$college_name`, `$semester`, `$contact`, `$email`)";
            echo $query;
            $result=mysql_query($query,$dbc) or die('error querying database');
            echo $result;
            echo 'Thanx for submitting the form. <br/>';
            mysql_close($dbc);
        ?>

其实我不明白问题出在哪里。

$result = mysql_query($query, $dbc)

我认为不起作用。

我第一次尝试mysqli_query()它遇到了问题。然后我试了这个

$result = mysql_query($dbc, $query)

并且我在mysql_query()中收到错误"参数 1 应该是字符串"。

我交换了值,最后使用了这个mysql_query($query, $dbc).

它显示通过回显的值。

但是在数据库表中插入数据仍然存在问题。请帮帮我。

您将需要进一步调查错误(获取一些错误消息(。您可以使用 try/catch 块来获取更多错误消息(字段是否都设置好了,等等(。请考虑以下代码,但请记住,它仍然对SQL注入开放(只是为了获得错误消息(:

try {
    $db = mysqli_connect("host", "user", "password", "database");
    if ($db->connect_errno)
        throw new Exception("Connection to the database failed: " . $db->connect_error);
    $sql = "INSERT INTO tab_m_registration (`fname`, `mname`, `lname`, `college_name`, `semester`, `contact`, `email`) ";
    $sql .= "VALUES(`$fname`, `$mname`, `$lname`, `$college_name`, `$semester`, `$contact`, `$email`)";
    if (!$db->query($sql))
        throw new Exception("Error Inserting Data " . $db->error);
    mysqli_close($db);
} catch (Exception $e) {
    echo $e->getMessage();
}