我正在尝试从文件夹中的.php文件调用公共函数delete()。
public function delete()在fileA.php
中我创建了另一个文件:fileB.php并用它来调用fileA.php中的公共函数。
但是,代码似乎不起作用。
这就是我在fileB.php中所拥有的:
function crondel() {
$sql_del2 = new Item;
$oc_t_item_description="oc_t_item_description";
$sql_del="SELECT * FROM $tbl_name WHERE UNIX_TIMESTAMP($expiry_date) < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))";
$result_del = mysql_query($sql_del);
while($row = mysql_fetch_array($result_del)) {
$itemid = $row['pk_i_id'];
$secret = $row['s_secret'];
//$sql_del2 = "DELETE FROM $oc_t_item_description WHERE
//fk_i_item_id = '$criteria'";
//$result_del2 = mysql_query($sql_del2);
}
$secret_new=$secret;
$itemid_new=$itemid;
$result_del2 = $sql_del2->delete( $secret_new, $itemid_new );
}
问题是脚本已经完成,并且没有报告错误。但是,它没有产生预期的结果。
我认为问题在于将从mysql_fetch_array获取的值插入到上面调用的公共函数delete()中。
除此之外,我无法想到为什么它不起作用。 感谢任何帮助。谢谢!
/////编辑//////
这是函数:delete()
公共功能删除($ secret,$ itemId) { $ item = $ this-&gt; manager-&gt; findByPrimaryKey($ itemId);
osc_run_hook('before_delete_item', $itemId);
if( $item['s_secret'] == $secret ) {
$this->deleteResourcesFromHD( $item['pk_i_id'] );
Log::newInstance()->insertLog( 'item', 'delete', $itemId, $item['s_title'], $this->is_admin ? 'admin' : 'user', $this->is_admin ? osc_logged_admin_id() : osc_logged_user_id() );
$result = $this->manager->deleteByPrimaryKey( $itemId );
if($result!==false) {
osc_run_hook('after_delete_item', $itemId, $item);
}
return $result;
}
return false;
}
答案 0 :(得分:0)
你可以发布delete()函数的来源吗? 无论如何,你的$ itemid和$ secret将只包含你查询的最后一行,因为你重新分配了值,之后什么都不做。我认为你这样做是为了得到所有结果:
while($row = mysql_fetch_array($result_del)) {
$result_del2 = $sql_del2->delete( $row['s_secret'], $row['pk_i_id'] );
}
编辑:delete()不将数组作为参数,但是s_secret和pk_i_id。