我正在开发一个应用程序,为此,我将我的页面组织为以下
我有这段代码(第一集团):
<?php
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
//------Query used to insert data
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL=$pro->prepare("INSERT INTO position (ID, DESCRIPTION) VALUES(:a, :b)");
$insertSQL->bindValue(':a', $_POST['ID'], PDO::PARAM_INT);
$insertSQL->bindValue(':b', $_POST['DESCRIPTION'], PDO::PARAM_STR);
$insertSQL->execute();
}
//------Query used to update data
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form2")) {
$updateSQL=$pro->prepare("UPDATE position SET DESCRIPTION=:a WHERE ID=:b");
$updateSQL->bindValue(':a', $_POST['DESCRIPTION'], PDO::PARAM_STR);
$updateSQL->bindValue(':b', $_POST['ID'], PDO::PARAM_INT);
$updateSQL->execute();
}
//------Query used to display list of inserted data in a table
$rs = $pro->prepare("SELECT * FROM position ORDER BY DESCRIPTION");
$rs->execute();
$row_rs = $rs->fetch(PDO::FETCH_ASSOC);
?>
我想知道上面代码是否有问题
答案 0 :(得分:0)
对我来说看起来或多或少,你有任何问题吗?
您没有检查错误。如果有任何错误,prepare()和execute()都返回 false 。但是,如果您将PDO配置为在错误上抛出异常,那么您不必检查此返回值。
由于您正在绑定值,因此执行此操作可能会更快一些:
$updateSQL->execute([':a'=>$_POST'DESCRIPTION'], ':b'=>$_POST['ID']]);
您可以这样做,而不是为每个参数调用bindValue()。 PDO :: PARAM_STR和PDO :: PARAM_INT类型不执行任何操作。
$rs = $pro->prepare("SELECT * FROM position ORDER BY DESCRIPTION");
选择按描述排序似乎有点奇怪。不一定是错误,而不是我期望的排序顺序。