我有一个HTML表单,但它的设置似乎不像正常的那样。我将在下面发布HTML(PHP)文件和将其发送到数据库的PHP代码。
<form action="upload.php" method="POST">
<!-- Name input-->
<div class="form-group">
<label class="control-label" for="name">Name</label>
<div class="">
<input id="name" name="name" placeholder="First and Last Name" class="form-control input-md" type="text" required>
</div>
</div>
<div class="form-group">
<label class=" control-label" for="supportingDoc">Upload Supporting Documentation</label>
<div class="">
<input id="supportingDoc" name="supportingDoc" class="input-file" type="file" style="margin-top: .5em; margin-left: 4em;">
</div>
</div>
<hr>
<!-- Submit -->
<div class="form-group">
<label class="control-label" for="submit"></label>
<div class="">
<button value="Submit" type="submit" id="submit" name="submit" class="btn btn-danger" style="border-radius: 25px;">Submit</button>
</div>
</div>
</form>
这是我的SQL/PHP代码
<?php
$servername = "localhost";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";
// Create connection
$con = mysqli_connect("localhost","xxx","xxx","xxx");
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if (isset($_REQUEST['name'])){
// set variables
$name = mysql_real_escape_string($_POST['name']);
$supportingDoc = mysql_real_escape_string($_POST['supportingDoc']);
$sql = "INSERT INTO `tablew` (name, supportingDoc) VALUES ('$name', '$supportingDoc')";
$result = mysqli_query($con,$sql);
if ($con->query($sql) === TRUE) {
echo "New record created successfully";
printf("New record created successfully");
} else {
echo "Error: " . $sql . "<br>" . $con->error;
printf("Error: " . $sql . "<br>" . $con->error);
}
$con->close();
}
?>
我尝试了各种变化,但是在phpmyadmin中没有任何内容显示。我甚至复制了一个之前创建的网站,但它仍然不起作用,哈哈。
我看到登录信息有变量,仍然将其放在mysqli中,但我已经做了8个小时这件事情了,现在已经筋疲力尽了,希望有人能发现我的错误。
提前感谢大家的任何帮助。
=========================================================================== 更新: 我进行了以上提到的所有更改,现在得到以下内容:
警告:mysqli_connect():(HY000/1049):未知数据库
我可以在phpmyadmin和Sequel Pro中看到数据库。我还确保将密码和登录设置为“root”。我的登录代码如下:
$con = mysqli_connect("localhost","root","root","epboarding");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
这是我的POST请求:
if (isset($_REQUEST['submit'])){
// set variables
$name = mysqli_real_escape_string($con, $_POST['name']);
$sql = "INSERT INTO `wos` (name) VALUES ('$name')";
$result = mysqli_query($con,$sql);
mysql_*
和mysqli_*
是不正确的。input type="file"
,因此在 PHP 端通过$_FILES
进行检查。$_REQUEST
,存在 SQL 注入漏洞,使用了过时的 API,HTML 缺失部分,连接对象奇怪等等。而且这里发布的所有答案都不完整或错误。 - tereško