会话错误值无法插入到DB中

时间:2017-02-10 05:56:09

标签: php mysql session

我有一个将会话值插入数据库的PHP代码,但是在尝试插入Error: INSERT INTO tbale name (amount,bankname) VALUES ( 20000.00,gtbank) Unknown column 'gtbank' in 'field list'时出现此错误。会话的值为GTBANK 下面是我的代码,它将会话值插入数据库

    <?php

    session_start(); {



    //Include database connection details
    include('../../dbconnect.php');

    if($_SESSION["bn"]) {

}

$amount =  strip_tags($_POST['cat']);
$field1amount = $_POST['cat'];
$field2amount = $field1amount + ($field1amount*0.5);


$sql = "INSERT INTO provide_help (amount,bankname) VALUES ( $field1amount,".$_SESSION['bn'].")";
if (mysqli_query($conn, $sql)) 


$sql = "INSERT INTO gh (ph_id, amount) VALUES (LAST_INSERT_ID(), $field2amount)";
if (mysqli_query($conn, $sql)) 

 {
    $_SESSION['ph'] ="<center><div class='alert alert-success' role='alert'>Request Accepted.</div></center>";
   header("location: PH.php");
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
}
?>

任何可以提供帮助的人?谢谢

2 个答案:

答案 0 :(得分:2)

在数据库中插入字符串(bankName)时,应该用引号括起来。

使用此:

$sql = "INSERT INTO provide_help (amount,bankname) VALUES ( $field1amount,'".$_SESSION['bn']."')";
                                                                       // ^                   ^ --- Single quote added

我建议您使用bind_params,如下所示:

$stmt = $conn->prepare("INSERT INTO provide_help (amount,bankname) VALUES (?, ?)");
$stmt->bind_param("ds", $field1amount, $_SESSION['bn']);
if ($stmt->execute()){
    // handle success
} else {
    // handle error
}

参数可能是绑定时的四种类型之一:

i - integer
d - double
s - string
b - BLOB

答案 1 :(得分:2)

我认为

bankname字段是varchar的类型。因此,您需要使用引号''传递字符串。看下面你的代码应该是这样的。

$sql = "INSERT INTO provide_help (amount,bankname)
     VALUES ( $field1amount,'".$_SESSION['bn']."')";