Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么赢了';我的表格不能将信息发送到数据库吗?_Php_Mysql_Function_Class_Pdo - Fatal编程技术网

Php 为什么赢了';我的表格不能将信息发送到数据库吗?

Php 为什么赢了';我的表格不能将信息发送到数据库吗?,php,mysql,function,class,pdo,Php,Mysql,Function,Class,Pdo,这是我先前提出的一个问题的一个更简洁的版本,希望得到答案。我已经制作了一个表单,应该使用一个类将提交的信息发送到数据库 beeradded.php beer.php 看起来$\u POST=$form应该是$form=$\u POST。你正在删除你所有的数据。另外,在您的示例中没有调用addBeer此外,您的登录系统是可利用的。如果除了@doliver的回答之外,我没有在浏览器中点击重定向,我可以忽略重定向 count($validationErrors) 将返回1,因为它是Int而不是

这是我先前提出的一个问题的一个更简洁的版本,希望得到答案。我已经制作了一个表单,应该使用一个类将提交的信息发送到数据库


beeradded.php


beer.php


看起来$\u POST=$form应该是$form=$\u POST。你正在删除你所有的数据。另外,在您的示例中没有调用addBeer此外,您的登录系统是可利用的。如果除了@doliver的回答之外,我没有在浏览器中点击重定向,我可以忽略重定向

count($validationErrors) 
将返回
1
,因为它是Int而不是数组。因此if语句中的任何内容都不会运行

$new_beer->setBeerRating($beer_rating);
echo "Beer added.";
您需要在这里添加一行,在这里您可以调用BeerEditor的
addBeer($new\u beer)
函数。目前,您没有调用该函数的任何内容,因此永远不会执行INSERT。Beer类中没有任何内容与DB交互,所以您所做的只是设置一个本地Beer对象,然后丢弃它

编辑: 根据我的意见,您需要:

  • 定义新的PDO连接,如
    $conn
  • 设置如下内容:
    $beerEditor=newbeereditor($conn)
  • 运行
    $beerEditor->addBeer($new\u beer)

谷歌可以帮你很多忙,这里

你希望它打印什么而不是数组?不确定这是否是唯一的错误,但是
$\u POST=$form
可能应该是
$form=$\u POST我希望它将数据与它一起发送到数据库。我遗漏了一些重要的东西吗?您没有包含Beer类的代码,只有Beereditor。此外,似乎没有显式调用addBeer()函数。您只在代码中填充了一个Beer对象,并且在切换数组之前从未将数据插入数据库。我仍然拥有我提交的所有数据。我切换了它,但在提交后得到了相同的结果。因此,我只需添加行
addBeer($new_Beer)您需要1)定义一个新的PDO连接
$conn
2)设置如下内容:
$beerEditor=newbeereditor($conn)3)运行
$beerEditor->addBeer($new\u beer)我已在顶部的include中建立了连接。至少我是这么想的。至于调用这个函数,我仍然没有弄清楚。我在
$new\u beer
下面添加了一行
$beereditor->addBeer($new\u beer)
,但是我得到了一个错误:
致命错误:在第31行的/home/carlton/public\u html/PHPproject/forms/beeradded.php中找不到类“beer”
您需要包含啤酒类文件好的。您的setter(setBeerName、setBeerType等)需要向其传递参数。目前,您正试图将$this->beer\u name设置为一个不存在的值。将它们分别更改为
公共函数setBeerName($beer_name){
等。此外,在u构造中,您调用
$this->setName($beer_name);
,该函数不存在(
setName
vs
setBeerName
)。最后两个错误是因为您没有从我的编辑中遵循上面的第2项
<?php
/**
 * Description of beer
 *
 * @author root
 */
class beer {

    protected $beer_name;   //varchar(45)
    protected $beer_type;   //varchar(45)
    protected $beer_abv;    //decimal(4,2) alcohol percentage ex. 06.50
    protected $beer_rating; //char(10) 1 awful beer, 10 great beer

    public function __construct($beer_name = null){
        if ($beer_name !== null){
            $this->setName($beer_name);
        }    
        //defaults
       // $this->setType($beer_type);
       // $this->setABV($beer_abv);
       // $this->setRating($beer_rating);


    }

        public function setBeerName(){
            $this->beer_name = $beer_name;
        }
        public function getBeerName(){
                return $this->beer_name;
        }

        public function setBeerType(){
            $this->beer_type = $beer_type;
        }
        public function getBeerType(){
            return $this->beer_type;
        }

        public function setBeerABV(){
            $this->beer_abv = $beer_abv;
        }
        public function getBeerABV(){
            return $this->beer_abv;
        }

        public function setBeerRating(){
            $this->beer_rating = $beer_rating;
        }
        public function getBeerRating(){
            return $this->beer_rating;
        }
}
count($validationErrors) 
$new_beer->setBeerRating($beer_rating);
echo "Beer added.";