0

在非对象上调用成员函数 combinestring() 时遇到问题。

**Index.php**
inlcude("string.php");
calldata('usa');


**string.php**
$a=new a();
funciton calldata($val){
$st1="select a from table 1 where country=".$a->combinestring($val);
return $st1;
}

**Class A**
function combinestring($abc){
   Return "'".$abc."'";
}

未知 $a->combinestring($val);

如何解决这个问题呢。

最好的祝福

4

2 回答 2

0

你收到错误

在非对象上调用成员函数 combinestring()

因为您正在对不是对象的变量调用成员函数。这意味着$a不是一个对象。

在 string.php 中,您不能使用$a内部函数定义,因为变量具有本地范围。您不能像那样访问该对象实例。但是,您可以通过使用全局变量来做到这一点。

你的string.php文件应该是这样的:

$a=new a();
funciton calldata($val){
   global $a;
   $st1="select a from table 1 where country=".$a->combinestring($val);
   return $st1;
}

有关变量范围的更多信息,请访问此链接:http: //php.net/manual/en/language.variables.scope.php

于 2012-06-28T05:14:10.197 回答
0

使用PDO.

funciton calldata($val){
   $st1="select a from table 1 where country = ?";
   $pdo = new PDO('host', 'user', 'pass');
   $result = $pdo->prepare($st1)->execute($val);
   return $result;
}

这与您正在做的事情有很大不同,但是您的a课程不会逃避查询的输入,这很糟糕。

于 2012-06-28T05:31:54.310 回答