我有一个网站,从蒸汽市场的价格。它正在按照商品的名称来定价。然后我的JavaScript机器人获取有关项目的信息并将其处理到MySQL(而PHP文件将其处理到另一个表)。注定与PHP字符串,任何想法?
所以问题是从它开始。有些项目的名称上有字符串。它会导致我的JavaScript机器人发生故障并崩溃。到目前为止,我有下面的代码。
有没有什么办法可以保存它的数据库,并发送信息到javascript bot的字符串?抱歉。也许我缺乏逻辑。
<?php
$item = $_GET['item'];
$item = str_replace("\"", "", $item);
$item = str_replace("\'", "", $item);
$item = str_replace(" ", "%20", $item);
$item = str_replace("\\", "", $item);
@include_once ("set.php");
$rs = mysql_query("SELECT * FROM items WHERE name='$item'");
if(mysql_num_rows($rs) > 0) {
$row = mysql_fetch_array($rs);
if(time()-$row["lastupdate"] < 604800) die($row["cost"]);
}
$link = "http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=".$item;
$string = file_get_contents($link);
$obj = json_decode($string);
if($obj->{'success'} == "0") die("notfound");
$lowest_price = $obj->{'lowest_price'};
for($i = 5; $i < strlen($lowest_price); $i++) {
$lowest_price[$i-5] = $lowest_price[$i];
}
$lowest_price[strlen($lowest_price)] = 0;
$lowest_price = (float)($lowest_price);
mysql_query("DELETE FROM items WHERE name='$item'");
mysql_query("INSERT INTO items (`name`,`cost`,`lastupdate`) VALUES ('$item','$lowest_price','".time()."')");
echo $lowest_price;
?>
有强制转换它'(串)' – Daan
如果可以的话,你应该[停止使用'mysql_ *'功能(http://stackoverflow.com/questions/12859942/why-shouldnt -i-使用MySQL的函数式的PHP)。他们不再被维护,并[正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。了解[准备](http://en.wikipedia.org/wiki/Prepared_statement)[声明](http://php.net/manual/en/pdo.prepared-statements.php),并考虑使用PDO ,[这真的不难](http://jayblanchard.net/demystifying_php_pdo.html)。 –
[你的脚本存在SQL注入攻击风险。](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –