好的,所以我在 php 中学习准备好的语句,因为我听说它们比 mysql 更安全
所以现在我刚刚掌握了功能。我制作了一个连接到 mysql db 的函数,并将它放在我想要使用它的页面的不同文件夹中。所以我希望我的所有主要功能都在一个文件中,然后我想从我需要它们的页面上的文件中调用它们。但是现在php不喜欢它。
这是我的functions.php页面
function mysqlconnect(){
$host = 'localhost';
$port = 3306; // This is the default port for MySQL
$database = '';
$username = '';
$password = '';
// Construct the DSN, or "Data Source Name". Really, it's just a fancy name
// for a string that says what type of server we're connecting to, and how
// to connect to it. As long as the above is filled out, this line is all
// you need :)
$dsn = "mysql:host=$host;port=$port;dbname=$database";
// Connect!
$db = new PDO($dsn, $username, $password);
}
这是我的测试页面,只是测试调用该函数。
include 'functions/functions.php';
mysqlconnect();
$_POST['fish'] = "shadow" ;
$statement = $db->prepare("SELECT * FROM users WHERE username = ?");
$statement->execute(array($_POST['fish']));
while ($result = $statement->fetchObject()) {
echo $result->username;
echo "<br />";
}
请注意,我包含该文件并调用该函数,但我得到:
注意:未定义变量:db 致命错误:在非对象上调用成员函数 prepare()
如果我将连接放在同一个 php 文件中,一切正常。但是当然 id 就像同一个文件中的所有函数一样,只要我需要它们就调用它们。我究竟做错了什么 ??