【问题标题】:How get id in class of specific user with form submition?如何通过表单提交获取特定用户类中的 id?
【发布时间】:2014-07-19 08:21:00
【问题描述】:

我正在更新使用形式,我从另一个页面获取 id 我如何在类和类的函数中使用这个 id。我正在这样做

public function edit_vender()
{
        $sqlupdate = "UPDATE `vender_master` SET `vender_no`='$this->vender_no',`vender_title`='$this->vender_title',`vender_address`='$this->vender_address',`vender_telephone`='$this->vender_telephone',`vender_email`='$this->vender_email',`vender_name`='$this->vender_name',`vender_cell`='$this->vender_cell',`vender_comments`='$this->vender_comments',`bank_name`='$this->bank_name',`bank_code`='$this->bank_code',`account_no`='$this->account_no',`account_holder`='$this->account_holder',`contactperson_name`='$this->contactperson_name',`contactperson_designation`='$this->contactperson_designation',`contactperson_cell`='$this->contactperson_cell',`contactperson_department`='$this->contactperson_department',`contactperson_telephone`='$this->contactperson_telephone',`contactperson_email`='$this->contactperson_email' WHERE `vender_id` ='$this->vender_id'";


    $result = @mysql_query($sqlupdate, $this->get_conn());
    if(!$result)
    {
        throw new Exception("Failed To Inser Query" . mysql_error());
    }   
}

我已经发送 id 来处理来自输入隐藏输入的文件,但是我怎样才能将它发送到班级

【问题讨论】:

  • edit_vender() 是如何以及在哪里调用的?身份证从何而来?这个问题缺少上下文。此外,您的表巨大,考虑将其分成多个表。对于初学者,请考虑将有关供应商和联系人的信息存储在单独的表格中。
  • 我在进程文件中调用了 edi_vender(),问题是我如何在供应商类中使用这个特定的用户 ID。

标签: php-5.2


【解决方案1】:

很难对您的问题给出具体答案,但在提及您应该考虑的其他一些问题后,我会尽力回答您的问题。

PHP 中的 SQL 代码

请确保不要在 PHP 中使用已弃用的 MySQL 函数 - 如 _Why shouldn't I use mysql__* functions in PHP? 中所述。

每当您将变量插入 SQL 代码时,请考虑使用 prepared statements 而不是直接将它们放入代码中。这些函数旨在以安全的方式将数据添加到 SQL 代码中。

数据库设计

您正在使用一个包含大量行的表。这并不方便,因为您需要始终处理大量字段,即使您只是对供应商信息感兴趣。首先,请考虑将有关供应商和联系人的信息存储在单独的表格中。

获取外部 ID

我正在更新使用形式,我从另一个页面获取 id 如何在类和类的函数中使用此 id

很明显,您的函数edit_vender() 在一个类中,所以我假设您有一些ID 想要传递给这个类?您可以在函数内部使用参数将其传递给外部:

public function edit_vender($id) {
    $sqlupdate = 'UPDATE `vender_master` SET `vender_no` = ?';
    // PDO style example where $dbh is a PDO object
    $dbh->prepare($sqlupdate);
    $dbh->execute( array($id) );
}

因此,无论您从哪里拨打edit_vender(),您都可以传递您想要的ID,然后用它做任何您想做的事情。如果您想对 ID 做很多事情,可以将其保存到类中。假设你有类似的东西:

class MyClass {
    private $id;

    function __construct($id) {
        $this->id = $id;
    }
}

// Pass an ID to the class
$myObj = new MyClass(123);

【讨论】:

    猜你喜欢
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2016-12-20
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    相关资源
    最近更新 更多