我很难通过zend php将flex连接到MySql。我看到了几个使用HTTP服务的例子。我的问题如下
1)我只做一个简单的插入和更新,只有三个表。那么我应该使用所有Zend AMF来实现这一目标吗? 2)那么使用HTTPService呢?
使用zend AMF显示最简单的操作,但是当我尝试插入值时,我迷路了。
我有一个php文件vo.php来存储数据库字段变量,但我无法在主php文件中使用require_once函数
这是vo.php
class vo {
public $id;
public $username;
public $symptom;
public $number_of_times_tested;
public $original_image;
public $sequence_of_actions;
public $customized_image;
public $percieved_image;
}
这是patientService文件
//require_once 'vo.php';
class patientService {
var $username = "root";
var $password = "";
var $server = "localhost";
var $port = "3306";
var $databasename = "patient";
var $tablename = "records";
var $connection;
public function __construct() {
$this->connection = mysqli_connect(
$this->server,
$this->username,
$this->password,
$this->databasename,
$this->port);
$this->throwExceptionOnError($this->connection);
}
public function getpatient() {
$stmt = mysqli_prepare($this->connection,
"SELECT
records.id,
records.username,
records.symptom,
records.number_of_times_tested,
records.original_image,
records.sequence_of_actions,
records.customized_image,
records.percieved_image
FROM records");
$this->throwExceptionOnError();
mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();
$rows = array();
mysqli_stmt_bind_result($stmt, $row->id, $row->username,
$row->symptom, $row->number_of_times_tested, $row->original_image, $row->sequence_of_actions, $row->customized_image, $row->percieved_image
);
while (mysqli_stmt_fetch($stmt)) {
$rows[] = $row;
$row = new stdClass();
mysqli_stmt_bind_result($stmt, $row->id, $row->username,
$row->symptom, $row->number_of_times_tested, $row->original_image, $row->sequence_of_actions, $row->customized_image, $row->percieved_image
);
}
mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);
return $rows;
}
/* create a entry for database patient
*/
public function createPatient($item) {
$stmt = mysqli_prepare($this->connection,
"INSERT INTO patient (
id,username,symptom,number_of_times_tested,original_image,sequence_of_actions,
customized_image,percieved_image)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
$this->throwExceptionOnError();
mysqli_bind_param($stmt, $item->id , $item->username, $item->symptom,$item->number_of_times_tested,$item->original_image,
$item->sequence_of_actions, $item->customized_image, $item->percieved_image
);
$item->id = '5';
$item->username = 'abhilash';
$item->symptom = 'retina pigmentosa';
$item->number_of_times_tested = '3';
$item->original_image = 'img';
$item->sequence_of_actions = 'l1l2l2lr3';
$item->customized_image = 'img';
$item->percieved_image = 'img';
$this->throwExceptionOnError();
mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();
$autoid = mysqli_stmt_insert_id($stmt);
mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);
return $autoid;
}
任何人都可以提供详细示例的链接吗?所以我可以更好地参考和理解?
答案 0 :(得分:0)
HTTPService用于在Flex内部请求任何类型的HTTP资源。如果您愿意,您可以设计自己的基于JSon或XML的Web服务,该服务将在您的表上执行所需的操作。如果您选择将前端技术从Flex切换到HTML / Ajax,则此策略前端独立,例如,您不必对后端进行任何更改。
另一个解决方案是使用Zend_AMF通过AMF从Flex中直接与PHP对象进行交互。
我总是喜欢使用第一种解决方案(没有比我更好理解我所做的更有趣的理由),但是如果你计划做一个仅限前端的话,第二种方法应该可以提高你的工作效率。 / p>