我正在学习如何在php中使用类
我试图在我的数据库中插入信息,但它给了我这个错误
致命错误:在第7行的C:\ xampp \ htdocs \ kapa \ classes \ lol.php中调用未定义的方法Produto :: introduzirProduto()
连接代码:
<?php
class dbConnect{
private $db_host;
private $db_user;
private $db_pass;
private $emp_db = "mydb";
var $connection;
var $db_select;
var $result;
var $row;
function __construct(){
$this->db_host = "localhost";
$this->db_user = "root";
$this->db_pass = "";
}
function connect(){
$this->connection = mysql_connect($this->db_host, $this->db_user, $this->db_pass); //create connection
checkErr($this->$connection);
$this->db_select = mysql_select_db($this->emp_db, $connection);
checkErr($this->db_select);
}
}
?>
形式:
<?php
require_once 'introduzir.class.php';
?>
<form action="lol.php" method="POST" id="">
<input type="text" name="id"/>
<input type="submit" value="ok.." />
</form>
插入代码
<?php
require_once('conectar.php');
class Produto extends dbConnect {
var $bd;
}
function Produto() {
global $emp_db, $db_user, $db_pass, $db_host;
$this->bd = new dbConnect();
$this->bd->ligarBD($emp_db, $db_user, $db_pass, $db_host);
}
function introduzirProduto($id) {
$sql = "INSERT INTO produto VALUES ('$id')";
if($this->bd->executarSQL($sql)) return true;
else return false;
}
?>
<?php
require_once 'introduzir.class.php';
if($_REQUEST['id']!="") {
$produto = new Produto();
if($produto->introduzirProduto($_REQUEST['id'])) {
echo "Registo efectuado com sucesso !!!<br>";
} else {
echo "Problema encontado no Registo !!!<br>";
}
} else {
echo "ERRO: Deve introduzir a sua password...<br>";
}
?>
我需要改变什么?
答案 0 :(得分:1)
您创建的名为Produto的类没有函数,您已经定义了$bd
变量,然后您已经结束了该类的定义。您需要在变量声明后删除该花括号并将其放在函数之后,如下所示:
<?php
require_once('conectar.php');
class Produto extends dbConnect {
var $bd;
function Produto() {
global $emp_db, $db_user, $db_pass, $db_host;
$this->bd = new dbConnect();
$this->bd->ligarBD($emp_db, $db_user, $db_pass, $db_host);
}
function introduzirProduto($id) {
$sql = "INSERT INTO produto VALUES ('$id')";
if($this->bd->executarSQL($sql)) return true;
else return false;
}
}
?>
作为旁注,你有一个以大写字母开头的函数,而没有大写的函数,试着坚持更严格的命名约定,例如:总是以小写字母和后面的单词开头使用大写字母(与第二个函数一样)
答案 1 :(得分:0)
在定义函数Produto
和Produto()
之前,您已关闭introdizirProduto()
类的大括号。我强烈建议您正确缩进代码以避免将来出现类似错误。
<?php
require_once('conectar.php');
class Produto extends dbConnect {
public $bd;
function Produto() {
global $emp_db, $db_user, $db_pass, $db_host;
$this->bd = new dbConnect();
$this->bd->ligarBD($emp_db, $db_user, $db_pass, $db_host);
}
function introduzirProduto($id) {
$sql = "INSERT INTO produto VALUES ('$id')";
if($this->bd->executarSQL($sql)) return true;
else return false;
}
}
//Rest of your code follows.
?>
PS :{@ 1}}在PHP中已弃用,请勿使用。\