php数据库中的初学者查询

时间:2019-03-28 21:43:52

标签: php mysql sql

我有一个包含以下列的数据库:ID,名称,区域。 我需要函数返回包含作为参数到达的区域的记录的名称

static public function mdlShowName($table, $zone){

    $stmt = Conection::conect()->prepare("SELECT name FROM $table WHERE zone = :$zone");

    $stmt -> bindParam(":name", name, PDO::PARAM_STR);

    $stmt -> execute();

    return $stmt -> fetch();

    $stmt-> close();

    $stmt = null;

}

1 个答案:

答案 0 :(得分:3)

参数占位符不是变量。不要使用$zone,只需给它加上标签即可。

$stmt = Conection::conect()->prepare("SELECT name FROM $table WHERE zone = :zone");

绑定参数所用的名称必须与在查询中用作占位符的标签相同。然后将其绑定到具有该值的PHP变量。

不要理会PDO::PARAM_STR或其他参数类型。无论如何,MySQL PDO驱动程序会忽略这些。如果您使用其他品牌的RDBMS(Oracle,Microsoft等),它们可能更为重要。

这里不需要在参数名称中使用:

$stmt -> bindParam("zone", $zone);

一种替代方法是只将数组传递给execute()。如果这样做,请跳过bindParam()呼叫。

$stmt -> execute( ["zone" => $zone] );

提示:这全部在the documentation中说明!