【发布时间】:2015-10-16 10:19:15
【问题描述】:
我在返回 php 方法的值时遇到了一个小问题。 在函数中像我想要的那样工作,但是当我尝试创建一个类和正确的方法时,我可以返回正确的值。
如果我使用这个函数并调用它,结果就是我想要的:
function InsertData($table, array $data){
$connection = DataBaseConnection();
$row = implode(", ", array_keys($data));
$column = "'".implode("', '", array_values($data))."' ";
$sql = "INSERT INTO {$table} ( $row ) VALUES ( $column )";
if($connection->query($sql) === FALSE){
return "Error: " . $connection->error; // return the error
}else{
return True; // return true
}}
我以这种方式调用该函数,并且工作正常。如果数据被插入则返回 true,如果存在错误则返回 "ERROR + error msg"。
$result = InsertData( 'table', $data_array);
但是我想把数据库的每一个东西都放在一个类中,并且这个类有适当的方法。我是 php oop 的新开发人员,我有一个问题。我可以在类的对应方法中返回与之前函数相同的值
class dba{
public function conn{
/*some code*/ return $conn; //
}
public function DBA_Insert($table, array $data) {
$conn = $this->Conn() ;
$row = implode(", ", array_keys($data));
$column = "'".implode("', '", array_values($data))."' ";
$sql = "INSERT INTO {$table} ( $row ) VALUES ( $column )";
if($conn->query($sql) === FALSE){
return "Error: " . $conn->error;
// 这返回一个对象,我想重新运行字符串 ERROR + Error 像我的功能一样的味精
}else{
return true;
//什么都不返回,但数据被插入到数据库中,我不想返回 true 以在应用程序的另一端使用
}
$conn->close();
}
以这种方式调用类和方法:
$insertMsg = new dba();
$insertMsg->DBA_Insert( 'messages', $data);
如果你能帮助我,我很感激。 感谢您的宝贵时间;)
`
【问题讨论】:
-
问题到底是什么? $connection->query($sql)
-
$connection 是连接。很抱歉这个错误。
-
我遇到的问题是返回的值与我的函数中的不同。在函数中,我返回消息并且为真。在我的方法中返回一个对象,什么都没有
标签: php class oop methods return-value