我一直在学习phpmyadmin,这是我目前的学习/测试
下面的环境。
我今天创建了第一个数据库,我称之为db1,它是简单的结构
只有三个输入字段。
和phpmyadmin中的一个主要ID。
还有一个唯一的用户名结构字段。
index.html:
<html>
<head>
<title>db1 test</title>
</head>
<body>
<form id="myForm" action="userInfo.php" method="post">
Username: <input type="text" name="username" /><br />
Name: <input type="text" name="name" /><br />
Favourite Number: <input type="text" name="favouritenumber" /><br />
<button id="sub">Save</button>
</form>
<span id="result"></span>
<script src="/script/jquery-1.8.1.min.js" type="text/javascript"></script>
<script src="/script/my_script.js" type="text/javascript"></script>
</body>
</html>
db.php:
<?php
$host = "localhost";
$port = "8889";
$servername = "$host:$port";
$username = "forest";
$password = "";
$db = "db1";
// Create connection
$conn = new mysqli_connect($servername, $username, $password, $db);
// Check connection
if ($conn - > connect_error) {
die("Connection failed: ".$conn - > connect_error);
}
?>
info.php:
<?php
include_once "/includes/db1.php";
$username = $_POST['username'];
$name = $_POST['name'];
$favouritenumber = $_POST['favouritenumber'];
if(mysqli_query("INSERT INTO user(username,name,favouritenumber) VALUES ('$username', '$name', '$favouritenumber')"))
echo "Successfully Inserted";
//echo "<a href='login_success.php'>Back to main page</a>";
else {
echo "ERROR not entered";
}
// close connection
mysqli_close();
?>
我认为我的问题可能很容易解决,因为它可以正常工作然后停止 当我改变某些东西时工作吗?
我不确定为什么突然无法保存结构字段吗?
我尝试过的事情:
我尝试从第三个名为db3的服务器重新开始,但这显示了与db2相同的insertion failed
错误。
而且我还尝试阅读this thread
Possilbe为什么不提交到mysql数据库的原因:
我应该添加的内容 =>在将用户名设置为唯一的结构之前,它已经可以正常工作了,并且如果要添加此主ID字段,我也在strucutre中添加了“ ai主ID”也对info.php,即使它不是由用户添加并由phpmyadmin自动添加的,还是不需要提交上述字段,因为我认为phpmyadmin在提交到达mysql之后添加了“ uuid ai”?
答案 0 :(得分:0)
如果要与localhost
连接,通常也不需要端口引用。
$servername = "localhost";
new mysqli_connect($servername, $username, $password, $db);
端口引用8889
不是MySQL的常规localhost端口3306。
您应该将空格与对象引用程序- >
隔开:
if ($conn -> connect_error)
或更通常地
if ($conn->connect_error)
您正在使用if(mysqli_query(
来执行插入操作,该插入操作是 PROCEDURAL ,而您的连接设置是$conn
,该插入操作是面向对象的。
这些是不同的东西,它们没有任何关系。面向对象是更可取的,因此您应该始终使用它。 Please refer to the manual。
因此改写为:
if(conn->query("Your queryString")){...
阅读您的PHP Error Log file。
切勿信任任何用户数据。 永远。您的代码容易受到SQL Injection attack的攻击。</ p>
更好,使用准备好的语句-Here's how
new mysqli_connect(...)
代替new mysqli(...)
。 mysqli_close()
,因为无论如何在提供页面时都会自动关闭连接。答案 1 :(得分:0)
尝试一下:
<?php
include_once "/includes/db1.php";
$username = $_POST['username'];
$name = $_POST['name'];
$favouritenumber = $_POST['favouritenumber'];
if(mysqli_query($conn,"INSERT INTO user(username,name,favouritenumber) VALUES ('$username', '$name', '$favouritenumber');"))
echo "Successfully Inserted";
//echo "<a href='login_success.php'>Back to main page</a>";
else {
echo "ERROR not entered";
}
// close connection
mysqli_close();
?>