【问题标题】:MODX REVO + php mysql - insert data to specified table rowMODX REVO + php mysql - 将数据插入指定表行
【发布时间】:2014-10-06 23:37:53
【问题描述】:

我正在尝试将一些数据添加到这样的自定义数据库表中:

$sql ="insert into ext_user_data (userdata_id,vorname,nachname) values('$id','$vorname','$nachname')";
$stmt = $modx->prepare($sql);
$stmt->execute();

这很好用,期望通过使用此代码,我会在表 ext_user_data 中获得一个新行。我想将此数据添加到这样的现有行:

$sql ="insert into ext_user_data where id='136'(userdata_id,vorname,nachname) values('$id','$vorname','$nachname')";
$stmt = $modx->prepare($sql);
$stmt->execute();

但是通过使用此代码,不会将任何内容添加到 db-table 中。

那么我怎样才能在这个custom-db-table 中添加一些东西到给定的主键呢?主键与 $id 相同。

【问题讨论】:

    标签: php mysql modx-revolution


    【解决方案1】:

    要将数据更新到现有行,请使用不同的 SQL 命令,您的代码应如下所示:

    $sql ="update ext_user_data set `vorname` = '$vorname', `nachname` = '$nachname' where id='$id'";
    $stmt = $modx->prepare($sql);
    $stmt->execute();
    

    【讨论】:

    • 谢谢 Yoel,这很好用...如果表格行尚不存在且需要创建,您能告诉我该怎么做吗?我刚刚发现这种情况可能会发生 table-row 不存在。
    • @EMEm 欢迎您。为此,您必须编写一个类似“SELECT id FROM ext_user_data WHERE id = '$id'”的查询,然后使用 $stmt->num_rows 或类似的东西检查有多少行。您可以查看更多信息link
    • 哦,没看到你的新评论...现在我正在使用这个: if(mysql_num_rows(mysql_query("SELECT ext_user_data WHERE userid = '$id'"))){ //如果 userid 已经存在,则 if 块中的代码 $sql ="update ext_user_data set vorname = '$vorname', nachname = '$nachname' where id='$id'"; $stmt = $modx->prepare($sql); $stmt->执行(); } else { $sql ="插入 ext_user_data (id,userdata_id,vorname,nachname) 值('$id','$id','$vorname','$nachname')"; $stmt = $modx->prepare($sql); $stmt->执行(); } ...似乎正在工作...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 2012-06-13
    相关资源
    最近更新 更多