重用函数PHP保存到变量中

时间:2014-12-18 01:50:41

标签: php mysql

我试图重复使用一个函数来保存" Price"有不同的名字。代码我希望通过抛出一个字符串来重用$ nameP

的值来重用
Function GrabPrice(&$nameP){
    $sql = "select Price from sub product where name='".$nameP."'";
    $resultTest = mysql_query($sql);
    $TempPrice = mysql_fetch_array($resultTest);
    return $tempPrice[0];
}

$part1 = GrabPrice("part number");
$part2 = GrabPrice("another part number");

该命令确实在数组[0]中保存了价格,但是当我将数据作为可重用函数时,它存储数据有困难。我只是不想为单个部件编号编写功能。

编辑:我试图通过传递一个字符串替换$ nameP来尝试将GrabPrice()的变量返回保存到$ part1 ... $ part2中。

1 个答案:

答案 0 :(得分:0)

Function GrabPrice($nameP){
    $sql = "select Price from sub product where name='".$nameP."'";
    $resultTest = mysql_query($sql);
    $TempPrice = mysql_fetch_array($resultTest);
    return $tempPrice[0];
}

$part1 = GrabPrice("part number");
$part2 = GrabPrice("another part number");

在函数的情况下通过引用传递完全没用,因为传递的字符串没有分配给变量,并且不需要存储它们的更改。此外,mysql_*函数已弃用,不再可用。使用MySQLi或PDO满足您的MySQL需求。

另外你如何使用mysql_query是危险的,当你从mysql转换到mysqli时,很可能不会有效。但是,假设您继续使用mysql_函数,则应该更改函数

Function GrabPrice($nameP){
    global $conn //Assuming your mysql_connect is stored in this variable.
    $sql = "select Price from sub product where name='".mysql_real_escape_string($nameP)."'"; 
    //Protects against SQL Injection, which you should google.
    $resultTest = mysql_query($sql,$conn);
    $TempPrice = mysql_fetch_array($resultTest,$conn);
    mysql_free_result($resultTest);
    return $tempPrice[0];
}

$part1 = GrabPrice("part number");
$part2 = GrabPrice("another part number");

我确实建议您查找MySQLi或PDO的一些教程。我个人更喜欢MySQLi,但事实上要说两者都有自己的优点,两者都有自己的弱点。