【发布时间】:2016-04-25 12:06:54
【问题描述】:
我正在上一个班级,我想检查是否所有内容都已填写,如果所有内容都已填写,然后插入到数据库中,但我一直坚持如何在我的班级中插入,所以我希望你们能提供帮助我。我从来没有遇到过这个问题的任何错误。
代码如下:
<?php
class clsCatCheck
{
private $catName;
public function __construct($catName)
{
$this->setCatName($catName);
}
public function setCatName($catName)
{
$connect = new PDO('mysql:host=hostname;dbname=dbname', "username", "password");
$select = $connect->prepare('SELECT * FROM category');
$row = $select->fetch();
if (isset($_POST['addCat'])) {
if (empty($_POST['catName'])) {
throw new Exception('Geen categorienaam is ingevuld<br />');
}
//if (strlen($_POST['catName'] <= 4)) {
// throw new Exception('De categorienaam moet minimaal 4 letters of langer zijn<br />');
//}
if ($_POST['catName'] == $row[1]) {
throw new Exception('Deze categorienaam bestaat al<br />');
}
}
else {
$query = $connect->prepare("INSERT INTO category (catName) VALUES (:catName = catName)");
$query->bindParam(':catName', $_POST['catName'] ,PDO::PARAM_STR);
$query->execute();
}
$this->catName = $catName;
}
public function getCatName()
{
return $this->catName;
}
}
已经感谢您的帮助。 如果您想从我这里获得更多代码,请询问。
【问题讨论】:
-
VALUES (:catName = catName)应该读作VALUES (:catName)并且使用异常会触发语法错误。 php.net/manual/en/pdo.error-handling.php - 你现在使用的是 UPDATE 语法,而不是 INSERT。 -
嗯,我试过了,但似乎没有用
-
啊,下面那个人;发布了答案,所以问他。我必须远离这个循环。
-
所以,您不是在向其他人询问他的答案以及为什么它不起作用。如果不是 magic 答案,您是否正在等待另一个答案?
-
很抱歉没有反应,但我正忙于我的小组,忘记了我在堆栈上的问题