【问题标题】:Update in RedBeanRedBean 中的更新
【发布时间】:2015-07-21 17:26:27
【问题描述】:

我正在创建一个数据输入系统。 现在我可以从表单中添加数据。 但是更新不起作用。相反,当我尝试更新时,它会添加另一个条目。

这是我的 add.php。

<?php
require 'rb.php';
R::setup( 'mysql:host=localhost:3306;dbname=employee',
        'root', '' );
$emp = R::dispense( 'emp' );
$emp->emp_no=$_GET['empno'];
$emp->empname =$_GET['empname'];
$emp->fathername =$_GET['fathername']; 
$emp->sex=$_GET['sex'];
$emp->designation =$_GET['designation']; 
$emp->department =$_GET['department']; 
$emp->dob =$_GET['dob'];
$emp->dor =$_GET['dor'];
$emp->doa =$_GET['doa'];
$emp->serviceStatus =$_GET['serviceStatus']; 
$emp->address =$_GET['address'];
$emp->pymtmode =$_GET['pymtmode'];
$emp->bank_code =$_GET['bank_code'];
$emp->acc_no =$_GET['acc_no'];
$emp->scale =$_GET['scale'];
$emp->basic =$_GET['basic'];



R::store( $emp );

?>

这是我的 update.php。这有什么问题。

<?php
require 'rb.php';
R::setup( 'mysql:host=localhost:3306;dbname=employee',
        'root', '' );
$emp = R::load('emp', $empno);
$emp->emp_no=$_GET['empno'];
$emp->empname =$_GET['empname'];
$emp->fathername =$_GET['fathername']; 
$emp->sex=$_GET['sex'];
$emp->designation =$_GET['designation']; 
$emp->department =$_GET['department']; 
$emp->dob =$_GET['dob'];
$emp->dor =$_GET['dor'];
$emp->doa =$_GET['doa'];
$emp->serviceStatus =$_GET['serviceStatus']; 
$emp->address =$_GET['address'];
$emp->pymtmode =$_GET['pymtmode'];
$emp->bank_code =$_GET['bank_code'];
$emp->acc_no =$_GET['acc_no'];
$emp->scale =$_GET['scale'];
$emp->basic =$_GET['basic'];



R::store( $emp );

?>

这里是mysql控制台截图的链接

http://i.stack.imgur.com/b9jcg.jpg

【问题讨论】:

  • 更多信息会有所帮助。错误信息是什么?更新在哪里?请发布更多代码和信息以获得合格的帮助
  • 没有错误。而不是更新它创建具有相同empno的多个条目...
  • 贴了mysql控制台截图的链接

标签: php sql-update redbean


【解决方案1】:

我认为您在设置之前使用了 $empno,并且您没有加载现有行进行更新。

$emp = R::load('emp', $empno);

应该是

$emp = R::load('emp', $_GET['empno']);

【讨论】:

  • 没有使用你的代码。它添加另一个条目而不是更新以前的条目..
  • 贴了mysql控制台截图的链接
  • 我看了你的截图,不清楚每一列是什么,但我看到一个增量 int(id?)上升到 64。尝试使用该数字加载数据,如果你不是。
【解决方案2】:

在您的 update.php 文件中,您有以下行: $emp = R::load('emp', $empno);

但是 $empno 没有在您的 update.php 文件中定义。获取您要更新的记录的 ID 并将其分配给变量:

$empno = $_GET['empno'];

把它放在文件的开头。

【讨论】:

  • 我不是 Redbean 方面的专家。您能通过编辑我的 update.php 中的更改来解释吗
【解决方案3】:

感谢大家的回答...Andrew R 和 Muhammad...这是有效的代码:

 <?php
require 'rb.php';
R::setup( 'mysql:host=localhost:3306;dbname=employee',
        'root', '' );
$empno = $_GET['empno'];
$emp = R::findOne('emp','emp_no=?',[$empno]);
$emp->emp_no=$_GET['empno'];
$emp->empname =$_GET['empname'];
$emp->fathername =$_GET['fathername']; 
$emp->sex=$_GET['sex'];
$emp->designation =$_GET['designation']; 
$emp->department =$_GET['department']; 
$emp->dob =$_GET['dob'];
$emp->dor =$_GET['dor'];
$emp->doa =$_GET['doa'];
$emp->serviceStatus =$_GET['serviceStatus']; 
$emp->address =$_GET['address'];
$emp->pymtmode =$_GET['pymtmode'];
$emp->bank_code =$_GET['bank_code'];
$emp->acc_no =$_GET['acc_no'];
$emp->scale =$_GET['scale'];
$emp->basic =$_GET['basic'];



R::store( $emp );

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-14
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多