对于我的生活,我不知道为什么张贴到这个页面不工作,我一直在尝试的东西,我发现从所有的堆栈溢出和互联网。
第一部分适用于"id“部分,但update函数不工作。
PHP消息: PHP致命错误:未指明的异常'PDOException‘与消息'SQLSTATEHY093:无效参数号:混合命名参数和位置参数’
updatecompany.php(21):Fr\LS::updateCompany(Array,NULL)
这些来自错误日志。任何帮助都将不胜感激。
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;
}
}发布于 2017-01-06 02:38:28
你的问题之一是:
这
"SELECT {$columns} FROM companys WHERE `id` = ? ORDER BY `id` LIMIT 1"不是update语句。
把它改成
"UPDATE companys SET {$columns} WHERE `id` = :id"https://stackoverflow.com/questions/41497895
复制相似问题