دوستان سلام
من سر يك پروژه دانشگاهي مشكل دارم. يك برنامه به زبان پي اچ پي دارم مي نويسم كه يه جائي از آن ايراد داره خواهش مي كنم (فقط از دوستاي با مرام و با مروت و با معرفت) راهنمائي كنيد. خلاصه برنامه اينه كه مي خوام به بانك ماي اس كيو ال وصل بشم و عمل درج و حذف و انتخاب و بروز رساني را انجام بدم منتها مي خوام بوسيله يك كلاس اينكار را انجام بدم يعني query را بدم به توابع عضو اون كلاس و از اون كلاس جواب بگيرم. اينم برنامه مشكل دار من .
اين همون كلاسيه كه گفتم:
<?php
class DataAccess{
private $pass="123";
private $user="root";
private $server="localhost";
private $port="3306";
private $database;
private $mysqli;
private $result;
//////////////////////////////////////////////////////
function _construct($value){
$this->database=$value;
}//end of constructor-
////////////////////////////////////////////////////
function connect(){
$this->mysqli=new mysqli($this->server,$this->user,$this->pass,$this->database);
if($this->mysqli->errno){
printf("Unable to connect to the database:
%s",$this->mysqli->error);
exit();
}//end of if statement
}//end of connect
////////////////////////////////////////////
function hello(){
echo "hello";
}//end of hello-
//////////////////////////////////
function disconnect(){
$mysqli.close();
}//end of disconnect
///////////////////////////////////////////////////////////
function select_query($valu){
$this->result = $this->mysqli->query($valu, MYSQLI_STORE_RESULT);
// Iterate through the result set
while ($row = $this->result->fetch_array(MYSQLI_NUM))
سطر بالا سطريه كه خطا روي آن گرفته شده است.
{
$sku = $row[0];
$name = $row[1];
$price = $row[2];
echo "($sku) $name: $price
";
}
}//end of excute_query function
///////////////////////////////////////////////////////
function executeQuery($val){
$this->result=$this->mysqli->query($val,MYSQLI_STORE_RESULT);
echo "query has been excute";
}// end of excuteQuery function.
}//end of class
?>
[/b]
اينم فايلي است كه شئي از اين كلاس ايجاد و تابع عضو را صدا مي زنم
<?php
//passenger.php
include "DataAccess.php";
$dal=new DataAccess("bus");
$dal->connect();
$dal->hello();
$query = "select * from passenger ";
$dal->select_query($query);
//Fatal error: Call to a member function fetch_array() on a non-object in /opt/lampp/htdocs/DataAccess.php on line 42
/*
$mysqli=new mysqli("localhost","root","123","bus");
if($mysqli->errno){
printf("Unable to connect to the database:
%s",$mysqli->error);
exit();
}
$query = "SELECT * from passenger";
$result = $mysqli->query($query, MYSQLI_STORE_RESULT);
// Iterate through the result set
while(list($ID, $Fname, $Lname,$codemelli,$email) = $result->fetch_row())
printf("(%s) %s %s: %s %s
", $ID, $Fname, $Lname,$codemelli,$email);
*/
?>
اينم خطائي كه مي ده
Fatal error: Call to a member function fetch_array() on a non-object in /opt/lampp/htdocs/DataAccess.php on line 4[/i]2
اين كد هم تازه نوشتم همون انتظار را ازش دارم منتها از ارث بري استفاده كرده ام. اين هم كار نمي كنه و خطا مي ده
<?php
class Dispatcher extends mysqli{
private $pass="123";
private $user="root";
private $server="localhost";
private $port="3306";
private $database;
public function _construct($database){
parent::_construct($this->server,$this->user,$this->pass,$database);
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}//end of if
}// end of Constructor
public function excute_query($val){
$result=parent::query($val,MYSQL_STORE_RESULT);
while(list($ID, $Fname, $Lname,$codemelli,$email) = $result->fetch_row()){
printf("(%s) %s %s: %s %s
", $ID, $Fname, $Lname,$codemelli,$email);
}//end of while
}//end of excute_query function
}//end of Dispatcher class
?>
خيلي ممنون