首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于html表单的php插入数组

基于html表单的php插入数组
EN

Stack Overflow用户
提问于 2017-01-06 02:15:37
回答 1查看 51关注 0票数 1

对于我的生活,我不知道为什么张贴到这个页面不工作,我一直在尝试的东西,我发现从所有的堆栈溢出和互联网。

第一部分适用于"id“部分,但update函数不工作。

PHP消息: PHP致命错误:未指明的异常'PDOException‘与消息'SQLSTATEHY093:无效参数号:混合命名参数和位置参数’

updatecompany.php(21):Fr\LS::updateCompany(Array,NULL)

这些来自错误日志。任何帮助都将不胜感激。

代码语言:javascript
复制
if (isset($_POST["id"]) && is_numeric($_POST["id"])) {
    $id = $_POST["id"];
    $vid = \Fr\LS::getCompany("id", $id);
    $vname = \Fr\LS::getCompany("name", $id);
    $vlogo = \Fr\LS::getCompany("logo", $id);
    $vinfo = \Fr\LS::getCompany("info", $id);
    $vsite = \Fr\LS::getCompany("site", $id);
    $vest = \Fr\LS::getCompany("est", $id);
} elseif ( isset($_POST["update"]) ) {
    \Fr\LS::updateCompany(array(
        "name" => $_POST["name"],
        "logo" => $_POST["logo"],
        "info" => $_POST["info"],
        "site" => $_POST["site"],
        "est" => $_POST["est"]
    ),
    $_POST["id"]);
    echo "<center>Company updated!";
    echo "<br><a href='updatecompany.php" . $_POST["id"] ."'>go back</a></center>";
} else {
   die("No server with that id.");
}

public static function updateCompany($toUpdate = array(), $company = null) {
    self::construct();
    if( is_array($toUpdate) && !isset($toUpdate['id']) ) {
        if($company == null) {
            echo "No company ID set!";
        }
        $columns = "";
        foreach($toUpdate as $k => $v) {
            $columns .= "`$k` = :$k, ";
        }
        $columns = substr($columns, 0, -2); // Remove last ","

        $sql = self::$dbh->prepare("SELECT {$columns} FROM companys WHERE `id` = ? ORDER BY `id` LIMIT 1");
        $sql->bindValue(":id", $company);
        foreach($toUpdate as $key => $value) {
            $value = htmlspecialchars($value);
            $sql->bindValue(":$key", $value);
        }
        $sql->execute();
    } else {
        return false;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-06 02:38:28

你的问题之一是:

代码语言:javascript
复制
"SELECT {$columns} FROM companys WHERE `id` = ? ORDER BY `id` LIMIT 1"

不是update语句。

把它改成

代码语言:javascript
复制
"UPDATE companys SET {$columns} WHERE `id` = :id"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41497895

复制
相关文章

相似问题

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