首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不写信到我的数据库

问为什么我不写信到我的数据库
EN

Stack Overflow用户
提问于 2014-08-16 21:49:22
回答 2查看 76关注 0票数 0

这是我的代码,我做错了什么。我有一个表单,提交名称和啤酒名称信息连接到我的数据库。我测试我的连接没有错误。我测试以确保vars是定义的。最后,我尝试写到我的数据库,但是我得到了以下错误:

警告: mysqli::query()期望参数2是长的,字符串给定 在/home/zacgre4/zachjgreen.dreamhosters.com/Homebrew/contact.php上 第15行

我的代码是:

代码语言:javascript
复制
if(isset($_POST["name"]) && isset($_POST["beername"])){
    $name = $_POST["name"];
    $beername = $_POST["beername"];
    $host="admin.zachjgreen.dreamhosters.com";
    $un="musicchild";
    $pw="xxxxxxxx";
    $dbn="adminzjg";
    $db=new mysqli($host, $un, $pw, $dbn);
    if($db->connect_errno > 0){
        echo "Failed " . mysqli_connect_error();
    }
    echo $name; 
    echo $beername;
    $db->query($con, "INSERT INTO Beers VALUE ($name, $beername)"); //this is line 15
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-16 22:27:41

您需要变量周围的引号,但这对于sql注入并不安全,但也容易出错,您应该准备好该查询:

代码语言:javascript
复制
 if(isset($_POST["name"]) && isset($_POST["beername"])){
    $name = $_POST["name"];
    $beername = $_POST["beername"];

    //connection
    $host="admin.zachjgreen.dreamhosters.com";
    $un="musicchild";
    $pw="xxxxxxxx";
    $dbn="adminzjg";


    $db = new mysqli($host, $un, $pw, $dbn);

    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }


    /* create a prepared statement */
    if ($stmt = $db->prepare("INSERT INTO Beers VALUES (?, ?)")) {

        $stmt->bind_param("ss", $name, $beername);
        $stmt->execute();

        printf ("New Record has id %d.\n", $db->insert_id);


        $stmt->close();
    }

    /* close connection */
    $db->close();
}
票数 0
EN

Stack Overflow用户

发布于 2014-08-16 21:54:25

如果它连接没有错误,那么问题在于查询。您需要指定要插入哪些列。它应该看起来像

代码语言:javascript
复制
"INSERT INTO Beers (name, beer_name) VALUES ($name, $beername)"

其中name和beer_name是表中的列

您可以回显查询以查看它的外观。然后将其复制到mysql控制台,即:

代码语言:javascript
复制
echo "INSERT INTO Beers VALUE ($name, $beername)"

而且,这个脚本非常不安全,但这不在您的问题范围之内。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25344330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档