我的PHP代码中的插入数据sql命令不工作。有人能帮帮忙吗?
我有一个注册表,它从输入字段(姓名、姓氏、电子邮件、用户名和密码)中获取值
用户在此字段中输入的值应保存到我的表“users”中,该表有以下列(ID[主键/INT]、name[文本]、lastname[文本]、e-mail[变量字符]、username[变量字符]和password[变量字符])。
这是我目前的代码:
if (isset ($_POST['name'],$_POST['lastname'],$_POST['email'],$_POST['username'], $_POST['password']))
{
//connect to database
$conn = mysqli_connect ('localhost', 'root', '', 'test_database');
if ($conn)
{
$sql="SELECT username FROM users WHERE username = '" . $_POST['username'] . "';";
$query = mysqli_query ($conn, $sql);
$result = mysqli_fetch_array ($query);
if ($result ['username'])
{
header ('Location: ' . $_SERVER['PHP_SELF'] . '?errno=1');
}
else
{
$sql="INSERT INTO users (ID, name, lastname, e-mail, username, password) VALUES (' ','" .$_POST['name'] . "' ,'" . $_POST['lastname']. "' ,'" . $_POST['email']. "' ,'" . $_POST['username']. "' ,'" . $_POST['password']. "');";
mysqli_query ($conn, $sql);
mysqli_close ($conn);
//registration completed, redirect to index page
//header ('Location:index.php?reg=1');
}
}
else
{
echo 'connection error';
}
}
你用''来插入id. id应该是自动递增和唯一的.你不能插入一个空白的空间给所有的.试着从插入到查询中删除id.把你的查询变成这个
$sql="INSERT INTO users (name, lastname, e-mail, username, password) VALUES ('" .$_POST['name'] . "' ,'" . $_POST['lastname']. "' ,'" . $_POST['email']. "' ,'" . $_POST['username']. "' ,'" . $_POST['password']. "');";
除了已在注释中概述的空格值(“”,
用于ID
列等)之外,您的电子邮件列名还包含连字符,并被解释为e
减去mail
,以及一个数学运算。
要么将其重命名为e_mail
,要么在其周围放置刻度。
`e-mail`
阅读以下标识符修饰符:
在查询中使用mysqli\u error($conn)
会引发语法错误。
旁注:您应该转义数据有很多原因,其中一个原因是为了防止SQL注入,如果您的数据可能包含MySQL可能抱怨的字符,例如John's Bar
您当前的代码对SQL注入开放。使用准备好的语句,或PDO与准备好的语句一起使用。
密码
使用以下选项之一:
CRYPT_BLOWFISH
密码()
bcrypt()
scrypt()
其他链接:
关于列长度的重要旁注:
如果您决定使用password\u hash()
或crypt,请务必注意,如果当前密码列的长度小于60,则需要将其更改为60(或更高)。手册建议长度为255。
您需要更改列的长度,并使用新的哈希重新开始,以便它生效。否则,MySQL将无声地失败。
我试图一次将多行插入数据库。 用户最多可以添加5个新行,以便将血液结果插入数据库。 有一个添加更多按钮允许他们这样做。 我有一个循环来遍历每个条目,但是当我单击submit时,只会提交一个条目。第一,我不确定我哪里出了问题,任何帮助都将不胜感激。 循环在这个代码块的底部,但我不确定这就是问题所在。
我在通过log4net记录到数据库时遇到问题。 < li >用户有权插入数据库 < li >相同的insert语句在Management Studio中有效 < li>log4net确实记录到文件,但不记录到数据库 < li >连接字符串正确(在其他应用程序中相同) 获得了以下配置: 数据库中的两列是: 消息varchar(max)不为空。 级别varchar(50)不为空 谢谢
我是mysql和php的初学者。在这个问题上陷入了困境。不知道问题出在哪里。但是如果我直接执行insert查询,它就会被执行,而如果我从用户那里接受它,它就不会被执行(代码中显示了这一点)。可能问题出在我用来检索用户提交的值的$\u POST[]方法上。我已经提交了两个代码,addbooks。php(用户提交值的表单)和add。php(插入数据库)。
我是android新手,这是我第一次在应用程序中使用room。未执行插入操作或未创建数据库或任何其他错误。 我不知道我做错了什么,所以我需要你的帮助。 此程序正在运行,但未显示任何结果。屏幕上什么都没有显示。 这是我的代码-请让我知道此代码中的错误以及我应该如何更正它。 汽车细节。JAVA 卡多。爪哇- CarListDatabase。JAVA CarRepository.java 公共无效get
//我试图创建一个注册表单(html),但在我单击按钮后,php文件似乎不能正确执行,web浏览器显示了上面的php代码,我想知道php有什么问题
我在我的几个应用程序中使用Logback将错误记录到数据库中。现在在我最新的应用程序中,我创建了一个正常使用的日志。但现在应用程序不会将任何内容记录到数据库中。 我正在使用源代码将db appender添加到记录器。代码如下所示: 当我尝试应用程序使用logback.xml文件相同的行为。没有日志写入数据库。有人能帮我吗?