所以我正在学习PHP进行面试。我从来没有用PHP编写代码,花了大约3天时间做练习,现在我正在尝试创建一个连接MySQL数据库的简单表单。
我创建了一个User Class和db Class。
当我尝试从我的db类调用该方法连接到数据库时,它会打印出我调用到屏幕的内容。 (见下图)
下面是表单和php的HTML。另一个粘贴的php来自外部类文件。
<!DOCTYPE html>
<html>
<head>
<link href="//db.onlinewebfonts.com/c/a4e256ed67403c6ad5d43937ed48a77b?family=Core+Sans+N+W01+35+Light" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="BattleNET_Form_Style.css" type="text/css">
<title></title>
</head>
<body>
<?php
require "./Classes/Users.php";
require "./Classes/db.php";
session_start();
$_SESSION['message'] = '';
$db = new db();
if($db->ConnectToDatabase() == true){
$stuff = "yarp";
}
?>
<div class="body-content">
<div class="module">
<h1>Create an account</h1>
<!-- Dont forget, POST means you are not sending the data in the URL. In this instance we are gonna have the form submit to itself. -->
<form class="form" action="BattleNET_Form.php" method="post" enctype="multipart/form-data" autocomplete="off">
<!-- Display the session messages in the div we created for said errors. -->
<div class="alert alert-error"><?= $_SESSION['message'];?></div>
<input type="text" placeholder="User Name" name="username" required />
<input type="email" placeholder="Email" name="email" required />
<input type="password" placeholder="Password" name="password" autocomplete="new-password" required />
<input type="password" placeholder="Confirm Password" name="confirmpassword" autocomplete="new-password" required />
<div class="avatar"><label>Select your avatar: </label><input type="file" name="avatar" accept="image/*" required /></div>
<input type="submit" value="Register" name="register" class="btn btn-block btn-primary" />
</form>
</div>
</div>
</body>
下面是我已经在类中注释掉代码的db.php类,只是试图降低复杂性,看看db类中是否有一些错误导致错误。
<?php
class db
{
private $host = 'localhost';
private $username = 'webUser';
private $password = 'totalTest';
private $dbname = 'accounts';
protected static $connection;
public function ConnectToDatabase(){
$result = false;
return $result;
}
}
感谢任何和所有帮助。
*编辑*
答案 0 :(得分:1)
您在以下行找不到'
:
private $dbname = '
你应该完成这一行。最后还加;
。例如:
private $dbname = 'database_name';
答案 1 :(得分:1)
您是否可以尝试删除db.php文件中的最后一个?>
以避免出现空格问题,并删除这两个文件中的所有注释?
如果您不打算在最后编写任何HTML,则不要关闭文件末尾的<?php
,这是一种很好的做法。
另请注意,您没有__constructor
方法,仍然使用new db()
调用db类。
您必须更改静态调用的方法或者为db类创建__constructor
方法