PHP 在插入到 mySQL 时将数组中的破折号替换为 0

标签 php mysql json

我正在从 json URL 插入/更新 mysql 表,但 $points 中的某些值包含破折号,我想在更新时修改为零(或 null 也可以),以便我可以拥有列设置为 INT。

我知道如何简单地将 mysql 中的 all - 替换为 0,但在尝试从 json URL 进行更新时卡住了。我的代码是:

for ($i = 0; $i < $length; $i++) { 
$sus = $array['formguide'][$i]['SUSPENSION'];
$wpoints = $array['formguide'][$i]['WEEKPOINTS'];
$tcode = $array['formguide'][$i]['TEAMCODE'];
$val = $array['formguide'][$i]['VALUE'];
$points = $array['formguide'][$i]['POINTS'];
$pname = $array['formguide'][$i]['PLAYERNAME'];
$tname = $array['formguide'][$i]['TEAMNAME'];
$sixwpoints = $array['formguide'][$i]['SIXWEEKPOINTS'];
$injury = $array['formguide'][$i]['INJURY'];
$playerid = $array['formguide'][$i]['PLAYERID'];
$pos = $array['formguide'][$i]['POS'];

//insert or update values into mysql
$sql = "INSERT INTO formguide (suspension, weekpoints, teamcode, 
                      value, points, playername, teamname, 
                      sixweekpoints, injury, playerid, pos)
        VALUES ('$sus', '$wpoints', '$tcode','$val','$points','$pname','$tname',
           '$sixwpoints','$injury','$playerid','$pos')
        ON DUPLICATE KEY UPDATE suspension='$sus', weekpoints='$wpoints', 
            teamcode='$tcode', value='$val', points='$points', playername='$pname', 
            teamname='$tname', sixweekpoints='$sixwpoints', injury='$injury', 
            playerid='$playerid', pos='$pos'";  

我在 UPDATE() 部分中的点上尝试了 REPLACE(),即:

...points=REPLACE('$points','-','0'), playername='$pname', ...

但是这不起作用。

有什么想法可以做到这一点,或者是否有其他方法可以将点列设置为 INT 并接受破折号? 谢谢

最佳答案

REPLACE 用于修改来自 SQL 的值,而您想要修改来自 PHP 的值。

改用str_replace

$points = str_replace('-', '0', $points); 

关于PHP 在插入到 mySQL 时将数组中的破折号替换为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49225412/

相关文章:

json - Terraform 语法和格式有什么区别?

php - 通过按钮更新金额值

ubuntu - php-fpm 在 ubuntu 上正常运行需要哪些系统文件在 jailed 环境中?

java - "hibernate.hbm2ddl.auto"属性/创建&更新

php - MySQL 搜索包含空格的值返回空结果(没有行)

jquery - Tumblr API v2 : Displaying Images?

php - RegEx 替换 HTML 标签中的所有宽度和高度值

PHP JSON 大整数

mysql - Tab '–' 附近的语法错误

android - Json解析错误字符串转换