0

我有以下问题。我正在尝试编写从 csv 文件导入数据的函数。在这个文件的价格栏里,如果有像'<>'这样的符号,则表示价格是美元,需要换算。我了解此变量以数字表示。如何将其转换为字符串?或者为什么该声明根本不起作用?与往常一样,这里是源代码。

$str='<>';
    if( $variant['price'] ==$variant['price'].$str)
    {
    $sql = mysql_query("SELECT rate_to FROM s_currencies WHERE id=1 LIMIT 0, 30 ");
  $course= mysql_fetch_row($sql);
//$rate=$course[0];
  $variant_price = $item['price']*$course[0];
  $variant['price']=$variant_price;
        }

请帮忙!

4

3 回答 3

3

您发布的代码不会进入if条件。用代码检查一下。

For eg. if $variant['price'] = '1';

if ('1' == '1<>')
{
}

上述条件不会进入 if 语句。

于 2013-07-30T12:52:24.700 回答
1
    $str='<>';
   if( stristr($variant['price'],$str){
        $sql  ="SELECT rate_to FROM s_currencies WHERE id=1 LIMIT 0, 30 ";
         $qry = mysql_query($sql);
         if ($qry && mysql_num_rows($qry)>0){
            $variant['price'] = (str_replace($str,'',$variant['price'])*mysql_result($qry,0,0));
        } else {
            echo 'error while converting:' . mysql_error();
        }
   } 
于 2013-07-30T12:52:21.860 回答
1

您需要检查该字符串是否存在,而不是使用当前的 IF 语句。strpos会给你你想要的

if(strpos($variant['price'],$str) !== false)  // <> is present
{
    // run your sql code
} 

我还建议远离 mysql_* 函数,因为它们已被弃用。使用绑定参数查看 PDO 或 mysqli 查询。

于 2013-07-30T12:49:50.210 回答