为什么这不插入mysqli数据库?

时间:2016-01-01 04:31:45

标签: php mysql mysqli

所以我无法弄清楚为什么这不是将内容添加到数据库中。我需要将itemcode和item添加到数据库中,然后才能读取它。这就是我所拥有的:

add.php

include('dbconnect.php');
function get_posts() {
    $txtitemcode = (!empty($_POST['itemcode']) ? $_POST['itemcode'] : null);
    $txtitem = (!empty($_POST['item']) ? $_POST['item'] : null);
    $sql1 = "INSERT INTO barcode (itemcode, item) VALUES ('".$txtitemcode."','".$txtitem."')";
    if(!mysqli_query($con, $sql1))
    {
        die('Error:'.mysqli_error());
    }
    echo "<h1>record added</h1>;
    window.location.href='index.php';</script>";
}

mysqli_close($con);

dbconnect.php

$con = mysqli_connect("localhost","root","root","db1");

// Check connection
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
    echo "Connected to Database. Please Continue.";
}

有人能帮忙吗?这对我来说很奇怪,它无法正常工作。

1 个答案:

答案 0 :(得分:1)

看起来您正在从函数内部调用插入查询,但$ con在全局范围内。要在您的函数中包含$con,您必须执行以下操作:

include('dbconnect.php');
function get_posts() {
    global $con;
    $txtitemcode = (!empty($_POST['itemcode']) ? $_POST['itemcode'] : null);
    $txtitem = (!empty($_POST['item']) ? $_POST['item'] : null);
    $sql1 = "INSERT INTO barcode (itemcode, item) VALUES ('".$txtitemcode."','".$txtitem."')";
    if(!mysqli_query($con, $sql1))
    {
        die('Error:'.mysqli_error());
    }
    echo "<h1>record added</h1>;
    window.location.href='index.php';</script>";
}
get_posts(); // you can call get_posts() here

mysqli_close($con);

基本上,global是一个PHP关键字,允许您访问已在全局范围内定义的变量。 Read about in the documentation by clicking here

  

[..]在用户定义的函数中引入了本地函数作用域。函数内使用的任何变量默认限制为本地函数范围。

并且,请务必调用您的函数,就像键入以下内容一样简单:

get_posts();