Php 如何调用类方法?
当我尝试使用Php 如何调用类方法?,php,class,oop,methods,Php,Class,Oop,Methods,当我尝试使用私有函数sqlConnection(){ 我有以下代码: <?php require "transferDao/daoTransferProyectos.php"; class daoProyectos{ private function sqlConnection(){ try { $servername = "localhost"; $username = "root"; $pas
私有函数sqlConnection(){
我有以下代码:
<?php
require "transferDao/daoTransferProyectos.php";
class daoProyectos{
private function sqlConnection(){
try {
$servername = "localhost";
$username = "root";
$password = "123asd";
$conn = new PDO("mysql:host=$servername;dbname=bd_actividades", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
}
public function resultSelect(){
$aObjects=array();
$db = sqlConnection();
$stmt = $db->prepare("SELECT pro_id, pro_nombre FROM act_proyecto");
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$result = $stmt->fetchAll();
foreach ($result as $row) {
$aTransfer = new daoTransferProyectos();
$aTransfer->setId($row['pro_id']);
$aTransfer->setNombreProyecto($row['pro_nombre']);
$aObjects[]=$aTransfer;
}
return $aObjects;
}
}
?>
然后我得到一个新的错误:
[Mon Jun 01 22:11:00.530604 2015][:error][pid 7015][client 10.0.2.2:61957]PHP致命错误:在第29行的/var/www/html/PROJECTS/dailytasks/dao/daoProyectos.PHP中对非对象调用成员函数prepare(),请参考:
这:
应该是:
$db = $this->sqlConnection();
//^^^^^^^ See here
换句话说,您试图调用一个不存在的全局函数,而不是对象的方法
function foo() {
echo 'global function foo';
}
class bar() {
function foo() {
echo 'method foo';
}
function bar() {
foo(); // prints: global function foo
$this->foo(); // prints: method foo
}
}
和这个:
应该是:
$db = $this->sqlConnection();
//^^^^^^^ See here
换句话说,您试图调用一个不存在的全局函数,而不是对象的方法
function foo() {
echo 'global function foo';
}
class bar() {
function foo() {
echo 'method foo';
}
function bar() {
foo(); // prints: global function foo
$this->foo(); // prints: method foo
}
}
和添加以下内容:
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conn; <-- add this line
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
返回$conn;添加以下内容:
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conn; <-- add this line
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
返回$conn;在它前面放一个$this->
如果成功,你还需要方法sqlConnection
来返回$conn;
。在它前面放一个$this->
如果成功,你还需要方法sqlConnection
来返回$conn;
。我们不是有一个副本吗?否则我们现在有了。。(顺便说一句:他还遗漏了一些其他东西)嗨,谢谢你的回答,现在我编辑时出现了一个新的错误,我把$db=$this->sqlConnection();。@MarcB Search在他返回连接的地方:)@JeanAndrésBergeretFuhrhop再次查看你的sqlConnection()
method并查看返回连接变量的位置:)我将return$conn和$db=$this->sqlConnection();,现在一切都好了,谢谢你!我们不是有一个副本吗?否则我们现在有了…(顺便说一句:他还缺少一些其他东西)您好,谢谢您的回答,现在当我将$db=$this->sqlConnection();@MarcB Search放置在他返回连接的位置:)@JeanAndrésBergeretFuhrhop再次查看您的sqlConnection()
方法并查看您返回连接变量的位置:)我将return$conn和$db=$this->sqlConnection()放置在哪里现在一切都好了,谢谢你!