【问题标题】:Updating database from table in php从 php 中的表更新数据库
【发布时间】:2016-09-18 06:24:12
【问题描述】:

我可以在我的网页上连接和查看数据库。我创建了输入字段,以便我可以编辑数据库。但是,当我单击编辑按钮时,我无法将更改更新到数据库。我希望我正确地格式化了问题。很抱歉我是编码新手。

    <?php 

    $con = mysqli_connect('localhost','******','******');

if(!$con){
    echo 'Not Connected to Server';
}

if(!mysqli_select_db($con,'*********')){
    echo 'Databaase Not Selected';
    }

if(isset($_POST['submit']) &&$_POST['submit']=='edit'){

 $UpdateQuery = "UPDATE maininfo SET name='$_POST(name)',   phone_number='$_POST(phone_number)', address='$_POST(address)', ems_number='$_POST(ems_number)', ems_level='$_POST(ems_level)', emergency_contact_name='$_POST(emergency_contact_number)', emergency_contact_number='$_POST(emergency_contact_number)', email='$_POST(email)', hire_date='$_POST(hire_date)' WHERE id='$_Post(hidden)'"; 

mysqli_query($con, $UpdateQuery);    
}
$sql="SELECT * FROM maininfo ORDER BY name"; 

$records=mysqli_query($con, $sql);

?> 

<?php 

    while($maininfo=mysqli_fetch_assoc($records)){

        echo "<form action=employee_edit.php method=post>";

        echo "<tr>";

        echo '<td><input type=text name=id value="' . $maininfo['id']. '" /></td>';

        echo '<td><input type=text name=name value="' . $maininfo['name']. '" /></td>';

        echo '<td><input type=text name=phone_number value="' . $maininfo['phone_number']. '" /></td>';

        echo '<td><input type=text name=address value="' . $maininfo['address']. '" /></td>';

        echo '<td><input type=text name=ems_number value="' . $maininfo['ems_number']. '" />   </td>';

        echo '<td><input type=text name=ems_level value="' . $maininfo['ems_level']. '" /> </td>';

        echo '<td><input type=text name=emergency_contact_name value="' . $maininfo['emergency_contact_name']. '" /></td>';

        echo '<td><input type=text name=emergency_contact_number value="' . $maininfo['emergency_contact_number']. '" /></td>';

        echo '<td><input type=text name=email value="' . $maininfo['email'].'" /></td>';

        echo '<td><input type=text name=hire_date value="' . $maininfo['hire_date'].'" />
        </td>';

        echo '<td><input type=hidden name=hidden value="' . $maininfo['id'].'" />
        </td>';

        echo "<td>" . "<input type=submit name=edit value=edit></td>";



        echo "</form>";

    }//end while

    ?>

【问题讨论】:

  • 将此 $_POST(name) 更改为 $_POST['name'];
  • 警告:$UpdateQuery 充满了SQL Injection 漏洞。切勿通过直接从 HTTP 请求中插入数据来构造 SQL。

标签: php sql database html-table


【解决方案1】:

当您获得POST 数据时,您应该使用[]。尝试更改它:

$_POST(name)

$_POST['name']

应该是:

$UpdateQuery = "UPDATE maininfo SET name='{$_POST['name']}',   phone_number='{$_POST['phone_number']}', address='{$_POST['address']}', ems_number='{$_POST['ems_number']}', ems_level='{$_POST['ems_level']}', emergency_contact_name='{$_POST['emergency_contact_name']}', emergency_contact_number='{$_POST['emergency_contact_number']}', email='{$_POST['email']}', hire_date='{$_POST['hire_date']}' WHERE id='{$_POST['hidden']}'"; 

【讨论】:

  • 我将 $UpdateQuery 更改为您在上面列出的内容。和之前一样。我可以在字段中进行更改,但是当我点击编辑按钮时没有任何反应。感谢您的帮助
【解决方案2】:

将代码更改为上面列出的答案更正了问题。但我也不得不改变

 if(isset($_POST['submit']) &&$_POST['submit']=='edit')

 if(isset($_POST['edit']))

【讨论】:

    猜你喜欢
    • 2018-12-10
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    相关资源
    最近更新 更多