【问题标题】:how to update database from get user_timeline twitter multiple rows using php mysql如何使用 php mysql 从获取 user_timeline twitter 多行更新数据库
【发布时间】:2017-01-10 08:52:08
【问题描述】:

我正在尝试使用填充 twitter api、facebook api 和 instagram api 的表创建数据库。

这是我尝试过的

  foreach($string as $items)
        {
            $date = new DateTime($items['created_at']);
        for($id=1;$id<=5;$id++){
            echo $id;
        }
        $socmed = array(
        'socmed_id'         => $id,
        'socmed_type'       => 'twitter',
        'socmed_time'       => $date->format('Y-m-d H:i:s'),
        'socmed_caption'    => $items['text']);

            echo $socmed['socmed_id'];
            echo "Time and Date of Tweet: ".$socmed['socmed_time']."<br />";
            echo "Tweet: ". $socmed['socmed_caption']."<br />";
            echo "Screen name: ". $socmed['socmed_type']."<br /><hr />";    



    updateSocmed($socmed['socmed_type'],$socmed);
}

在这种情况下,我不知道如何在没有 id 的情况下更新多行,所以我使用社交媒体类型来更新所有行,但它不起作用。

这是显示我的函数 updateSomed:

function updateSocmed($type, $updateData){
    $update = array();
    array_walk($updateData, 'array_sanitize');

    foreach($updateData as $fields => $data){
        $update[] = '`' . $fields . '` = \'' . $data .'\'';
        }
        mysql_query("UPDATE `socmed` SET" . implode(', ',$update) . "WHERE `socmed_type` =  '$type'") or die(mysql_error());
    }

请帮忙..

【问题讨论】:

  • 将表名添加到每一列有什么意义?
  • @neat 我应该回答这个问题吗?

标签: php mysql api twitter


【解决方案1】:

你错过了单引号' for $type in where 条件

mysql_query("UPDATE `sosmed` SET" . implode(', ',$update) . "WHERE `socmed_type` =  '$type'") or die(mysql_error());

注意:mysql_query 在 PHP 5.5.0 中被弃用,在 PHP 7.0.0 中被删除。相反,应使用 MySQLi 或 PDO_MySQL 扩展。此函数的替代方案包括:mysqli_query()PDO::query()

【讨论】:

  • 这不是主要问题,如果是 mysql_error 就可以了。但我编辑了你的意见顺便说一句。谢谢你的贡献