私は、メインファイル(作成時)のテキストボックスの横に置かれるラベルを見つけるはずのphpで書かれたクラスを持っています。基本的に、クラスは自分のDBを検索して、選択された図形(メインページから渡される)のラベルを探します。ダミー値を使用して関数を実行すると、$ dbConnection値が値を設定していないかのようになります。 $ dbConnectionが定義されていないというエラーが表示され、関数が特定のパラメータ型を予期していますが、指定された型がnullであるというエラーが表示されます。私が見ると、彼らはすべて$ dbConnection変数を指しています。私のクラスには、次のようになります。変数が値を設定していません
class lblFinder
{
//declarations
private $dbConnection;
private $dbName="matecalculator";
private $cmd="";
private $size=0;
//end of declarations
public function __construct()
{
$this->dbConnection=mysql_connect("localhost", "root", "");
}
public function setSize($shape)
{
if($this->dbConnection===false)
{
echo "<p>Something went wrong.</p><p> Error Code:".mysql_errno().": ".mysql_error()."</p>";
}
else
{
if(mysql_select_db($this->dbName,$this->dbConnection))
{
$cmd="SELECT COUNT(varID) FROM tblvariables WHERE shapeID IN(SELECT shapeID FROM tblshapes WHERE shapeName='$shape')";
$qryResults=mysql_query($cmd,$dbConnection);
//get results
while (($Row = mysql_fetch_row($qryResults)) !== FALSE)
{
$size=$Row[0];
}
mysql_free_result($qryResults);
}
else
{
echo "<p>Something went wrong.</p><p> Error Code:".mysql_errno().": ".mysql_error()."</p>";
}
}
}
public function getSize()
{
return $this->size;
}
public function setLabels($shape)
{
//declarations
$l=array();
//end of declarations
$this->cmd="SELECT varDesc FROM tblVariables WHERE shapeID IN(SELECT shapeID FROM tblShapes WHERE shapeName= '".$shape."')";
$qryResults=mysql_query($cmd,$dbConnection);
$i=0;
if(($Row = mysql_fetch_row($qryResults)) !== FALSE)
{
$l[i]=$Row[0];
$i++;
}
mysql_free_result($qryResults);
return $l;
}
}
だけでキックと笑いのために、ここでは(ダミーの値を渡します)私のテストファイルです。私はラウンドがDBからの有効な値であることを知っているので、それは問題ではないことは分かっています。
$arr=array();
$lf=new lblFinder;
$lf->setSize("Round");
echo "Size=".$lf->getSize();
$arr=$lf->setLabels("Round");
$i=0;
foreach($arr AS $label)
{
echo "Label $i is $label";
}
正確なエラーメッセージを完全に入力してください。 – deceze
正確なエラーは、C:\ wamp \ www \ matePrecisionCalc \ lblFinder.phpの37行目のdbConnectionです。mysql_query()は、パラメータ2がリソースであることを期待しています、C:\ wamp \ www \ matePrecisionCalc \ lblFinder.php mysql_fetch_row()は、パラメータ1がリソースであることを期待しています。これはC:\ wamp \ www \ matePrecisionCalc \ lblFinder.phpの40行目にあります(ループ内にあるかのように何度も繰り返されています) – Cityonhill93