使用变量更新数据库表

贾诺德41

我正在尝试根据填充的下拉列表更新用户信息。我能够访问主键并回显它(id),但我似乎无法获取信息进行更新。

这是我的职能;

function updateTable() {

if (isset($_POST['submit'] )) {
    global $db;
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $address = $_POST['address'];
    $city = $_POST['city'];
    $state = $_POST['state'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    $category = $_POST['category'];

    $id = $_POST['users'];

    $query = "UPDATE customers SET ";
    $query.= "first_name = '$first_name', ";
    $query.= "last_name = '$last_name' ";
    $query.= "address = '$address', ";
    $query.= "city = '$city' ";
    $query.= "state = '$state', ";
    $query.= "phone = '$phone' ";
    $query.= "email = '$email', ";
    $query.= "category = '$category' ";
    $query.= "WHERE id = $id ";
    echo $id;


    $statement = $db->prepare($query);
Try
{
$statement->execute();
$users = $statement->fetchAll();
}
Catch (PDOException $e)
{
    $error_message = $e->getMessage();
    include('database_error.php');
    exit();
}
$statement->closeCursor();

}
}
世界

您的SQL中存在许多语法错误,但是仍然应该使用准备好的语句将变量绑定到SQL查询。

不知道您在这里使用MySQLi还是PDO。对于MySQLi,请尝试这样的事情;

$query = "UPDATE customers SET
     first_name = ?, 
     last_name = ?,
     address = ?,
     city = ?,
     state = ?,
     phone = ?,
     email = ?,
     category = ?
   WHERE id = ?";

$statement = $db->prepare($query);
$statement->bind_param('ssssssssi',$first_name,$last_name,$address,$city,$state,$phone,$email,$category,$id);
$statement->execute();

或对于PDO试试这个;

$query = "UPDATE customers SET
     first_name = :firstname, 
     last_name = :lastname,
     address = :address,
     city = :city,
     state = :state,
     phone = :phone,
     email = :email,
     category = :category
   WHERE id = :id";

$statement = $db->prepare($query);
$statement->bindParam(':firstname',$first_name);
$statement->bindParam(':lastname',$last_name);
$statement->bindParam(':address',$address);
$statement->bindParam(':city',$city);
$statement->bindParam(':state',$state);
$statement->bindParam(':phone',$phone);
$statement->bindParam(':email',$email);
$statement->bindParam(':category',$category);
$statement->bindParam(':id',$id,PDO::PARAM_INT);
$statement->execute();

由于这是一个更新查询,因此没有要提取的结果。所以fetchAll()没用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用javascript变量更新数据库

来自分类Dev

使用变量更新 joomla 数据库

来自分类Dev

使用循环更新数据库表

来自分类Dev

更新数据库表

来自分类Dev

SQLite数据库不会使用Python变量更新

来自分类Dev

如何使用变量更新mysql数据库?

来自分类Dev

如何使用PHP变量更新数据库?

来自分类Dev

使用C#从2个表更新数据库

来自分类Dev

使用sqlalchemy根据python列表更新数据库表

来自分类Dev

使用表中的值更新mysql数据库

来自分类Dev

使用ajax更新Mysql数据库表

来自分类Dev

插入表或使用MYSQL数据库更新(如果存在)

来自分类Dev

使用请求元从scrapy更新数据库表

来自分类Dev

使用ajax调用更新数据库表

来自分类Dev

在更改时使用 AJAX 更新数据库表

来自分类Dev

使用 Groovy SQL 的 withBatch 更新数据库表

来自分类Dev

表单变量与数据库表匹配

来自分类Dev

如何使用mySQL使用当前数据库表中的信息更新其他数据库表?

来自分类Dev

撤消对数据库表的更新

来自分类Dev

数据库表未更新

来自分类Dev

更新MySQL数据库表架构

来自分类Dev

从ADF表更新数据库

来自分类Dev

从Excel文件更新数据库表

来自分类Dev

数据库表未更新

来自分类Dev

更新数据库表的问题

来自分类Dev

更新数据库表信息问题

来自分类Dev

更新 SQL 数据库中的表

来自分类Dev

访问数据库表更新替换

来自分类Dev

从前端更新数据库表