我正在尝试将这些文件放在一个单独的文件中,该文件将包含在每个页面中
$sql = 'select id, name, age, address, pincode from json where name = :name';
$arr = array(":name" => $name);
// There are some 30 diff sql's and arrays
另一页
$name = 'peter';
$conn = connect();
function myType(){
global $conn;
global $sql;
global $arr;
$stmt = $conn->prepare($sql);
$stmt->execute($arr);
while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
foreach ($row as $value) {
echo $value.' <br>';
}
}
}
myType();
我正在尝试将sqls和数组保存在单独的文件中,并在需要时使用它们。保持清洁,易于维护。但变量后来被声明,这给了我:Notice: Undefined variable: name in C:\web\apache\htdocs\dev\json.php on line 24
你能看到一种方法来做到这一点,而不是丑闻吗?
答案 0 :(得分:0)
你应该使用两个文件
然后在fetch.php中,您将使用require_once 'sql.php'
这是fetch.php的代码:
$name = 'peter';
$conn = connect();
require_once 'sql.php';
function myType(){
global $conn;
global $sql;
global $arr;
$stmt = $conn->prepare($sql);
$stmt->execute($arr);
while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
foreach ($row as $value) {
echo $value.' <br>';
}
}
}
myType();
这是sql.php
$sql = 'select id, name, age, address, pincode from json where name = :name';
$arr = array(":name" => $name);
这应该会有所帮助,您可以随时使用sql.php。
答案 1 :(得分:0)
在单独的include中存储查询和绑定参数有点奇怪。如何在include? p>之后更改绑定参数
我的建议是创建一个处理数据库操作的模型。这样做的好处是,您可以封装数据库工作并将其与应用程序逻辑分开,并且可以轻松地在整个数据库中重复使用。
基本示例:
class CustomersModel
{
protected $db;
public function __construct($db)
{
$this->db = $db;
}
public function getByName($name)
{
$result = array();
$sql = 'select id, name, age, address, pincode from json where name = :name';
if($stmt = $conn->prepare($sql))
{
$stmt->execute(array(":name" => $name));
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
return $result;
}
}
用法:
require_once('/path/to/CustomerModel.php');
$conn = connect();
$model = new CustomerModel($conn);
$customers = $model->getByName('peter');
foreach($customers as $c)
{
echo htmlspecialchars($c['name']) . '<br />;
}