在sql中失败的insert语句

时间:2014-03-10 17:01:18

标签: javascript php mysql sql

以下是我的代码中导致我出现问题的部分:

$usertype = $_POST['usertype'];
if ($usertype == "Administration") {

?>

<script type='text/javascript'>
window.onload = promptMessage;

function promptMessage() {

    var x = 38773;

    var code = prompt('Enter the administration code you have been given:', 'Enter code here');

    if (code == x) {
        alert("Administration code accepted");

    } else {
        var secondcode = prompt('The code you have entered is inccorect', 'Enter correct code here or change Usertype');
        if (secondcode == x) {
            alert("Administration code accepted");
        } else {
            location.href = 'AdminCodeFail.html';
        }
    }
}  
</script>
<?php
$con = mysqli_connect("localhost:3306", "root", "***********", "systemone");

$sql = "INSERT INTO completeinfo (FirstName, Surname, UniID, 
                                       HouseNumber, AddressLineOne, AddressLineTwo, City, 
                                       PostCode, County, PhoneNumber, Email, Username, 
                                       Password, UserType)
                                       VALUES
                                       ('$_POST[firstname]','$_POST[surname]','$_POST[uniid]',
                                       '$_POST[housenumber]','$_POST[addresslineone]',
                                       '$_POST[addresslinetwo]','$_POST[city]','$_POST[postcode]',
                                       '$_POST[county]','$_POST[contactnumber]','$_POST[email]',
                                       '$_POST[username]','$_POST[password]','$_POST[usertype]')";

if (!mysqli_query($con, $sql)) {
    die('Error: ' . mysqli_error($con));
} else {
    header("Location:SignUpComplete.html");
}

我遇到的问题是插入查询无法正常工作。查询无法将任何数据插入数据库,我不知道为什么。与数据库的连接工作正常,我在测试查询本身时没有收到任何错误。那么为什么查询不起作用?

3 个答案:

答案 0 :(得分:1)

添加

error_reporting(E_ALL);
ini_set('display_errors', '1');

在您的代码之后,它将为您提供有关查询失败原因的更多描述性错误。

答案 1 :(得分:0)

  1. 您不能在双引号中包含数组变量,如下所示:

    $string = "hello $array['index'] world!";
    

    他们必须是:

    $string = "hello {$array['index']} world!";
    
  2. 您的代码在wazoo上有SQL注入漏洞。我强烈建议您阅读:How can I prevent SQL injection in PHP?

答案 2 :(得分:0)

How should I write PHP $_POST vars in a mysql_query function?

这是你的错误,这类问题已经得到解答。

使用

. mysql_real_escape_string弹出字符串并识别值

看看链接......它会有所帮助:)