В вашем классе есть опечатка / ошибка, исправленная для вас:
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]; // The $ symbol was missing from the i
$i++;
}
mysql_free_result($qryResults);
return $l;
}
Кроме того, для простоты вы могли бы написать следующее:
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);
if(($Row = mysql_fetch_row($qryResults)) !== FALSE)
{
$l[]=$Row[0]; // Do not need to increment index of array, php does automatically
}
mysql_free_result($qryResults);
return $l;
}
Если соединение возвращает значение NULL, вы можете устранить эту проблему, выдав ошибку, возникающую во время соединения, следующим образом:
$this->dbConnection=mysql_connect("localhost", "root", "") or die("Error connecting to DB: " . mysql_error());
EDIT :
die()
приостанавливает выполнениесценария PHP.В подобных случаях это полезно для отладки, так как предотвращает запуск остальной части скрипта и выводит кучу ошибок (как это происходит сейчас).mysql_connect("localhost", "root", "") or die(mysql_error());
сообщает сценарию, что , если соединение не установлено , остановить сценарий php и вывести ошибку mysql, поэтому у вас есть информация для устранения неполадок.
Одной из проблем являетсячто пока вы говорите нам номер строки, но какая строка в вашем коде приведена выше?С помощью номера строки PHP сообщает вам, где именно произошла ошибка.Можете ли вы сказать нам, какие строки 37 и 40?