php - 如何在数据库中写入字符

标签 php sql-server database

<分区>

我正在尝试将所有项目名称和价格写入数据库,但我不知道为什么 在数据库中替换为 â�... 示例 ★ 卡口★... 卡口

我知道代码可能不好,因为我是初学者

cost.json 看起来像这样:

{
  "status" : "success",
  "prices" : [
    {
      "market_hash_name" : "★ Bayonet",
      "price" : "147.41",
      "created_at" : 1453784357
    },
    {
      "market_hash_name" : "★ Bayonet | Blue Steel (Battle-Scarred)",
      "price" : "112.28",
      "created_at" : 1453784518
    }, ...

这是我正在使用的代码:

<?php
@include_once ("pdocon.php");

$url = 'cost.json';
$api = file_get_contents($url);
$json = json_decode($api, true);


foreach($json['prices'] as $item) {
    $itemname = $item['market_hash_name'];
    $itemcost = $item['price'];

    $stmt = $dbh->prepare("SELECT * FROM items WHERE name=?");
    $stmt->execute(array($itemname));
    $rs = $stmt->fetch(PDO::FETCH_ASSOC);
    if(!empty($rs)) {
        if(time()-$rs["lastupdate"] < 604800) die($rs["cost"]);
    }

    $stmt = $dbh->prepare("UPDATE items SET `cost` = ?,`lastupdate` = ? WHERE `name` = ?");
    $stmt->execute(array($itemcost, time(), $itemname));

    $stmt = $dbh->prepare("INSERT INTO items (`name`,`cost`,`lastupdate`) VALUES (?, ?, ?)");
    $stmt->execute(array($itemname, $itemcost, time()));


}

?>

最佳答案

尝试设置您的 PDO 连接选项并在连接到您的数据库时传递它:

$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
$handle = new PDO(dns, user, pass, $options);

关于php - 如何在数据库中写入字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35011734/

相关文章:

php - 没有 ON DUPLICATE KEY 的 MySQL UPSERT

php - 正则表达式匹配包含电话号码的文本中正好 6 个数字的字符串

php - MySQL 查询没有结果

sql - 在 SQL Server 中,为什么 0.00 到 0.99 之间的所有小数都可以在浮点字段中准确表示?

c# - 使用c#提高dacpac部署的性能

sql-server - 如何从 SQL Server 2016 生产机器恢复 EF Core 迁移

php - AJAX 模式下的验证错误

php - 如何为 wp 中的某些用户隐藏特定页面(来自 wp-admin)?

asp.net - 使用 ASP.net 在 MySql 中存储当前日期和时间

PHP/MYSQL 根据另一个条件检索名称