我想創建一個PHP文件,它可以根據通過POST發送的數據執行不同的MySQL查詢。如果我在執行MySQL查詢的switch語句中添加另一個案例,則會發生致命錯誤:調用成員函數prepare()null。 connection.php包含$ conn。多個MySQL查詢在一個PHP文件
我真的不知道,爲什麼出現這種情況,所以我會很高興,如果有人可以幫助:)
require_once('connection.php');
function namecheck($conn, $username)
{
try {
$sql = "SELECT username FROM users WHERE username = ?";
$stmt = $conn->prepare($sql);
$stmt->execute(array($username));
$result = $stmt->fetch();
} catch (PDOException $e) {
return $sql . "<br>" . $e->getMessage();
}
$conn = null;
if ($result !== false) {
return True;
} else {
return False;
}
}
if (isset($_POST['action']) && !empty($_POST['action'])) {
$action = $_POST['action'];
switch ($action) {
case 'namecheck': //works
$username = $_POST['username'];
$result = namecheck($conn, $username);
if ($result == True) {
echo 'True';
} elseif ($result == False) {
echo 'False';
}
case 'adduser': //script still works
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$username = $_POST['username'];
$password = $_POST['password'];
try {
$sql = "INSERT INTO users (username, password) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->execute(array($username, $password));
} catch (PDOException $e) {
return $sql . "<br>" . $e->getMessage();
}
$conn = null;
case 'test': //Same as above. if added, fatal error
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$username = $_POST['username'];
$password = $_POST['password'];
try {
$sql = "INSERT INTO users (username, password) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->execute(array($username, $password));
} catch (PDOException $e) {
return $sql . "<br>" . $e->getMessage();
}
$conn = null;
}
}