正在使用PHP通过HTML表单进行MySQL插入,但是数据不可搜索
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了正在使用PHP通过HTML表单进行MySQL插入,但是数据不可搜索,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3104字,纯文字阅读大概需要5分钟。
内容图文
![正在使用PHP通过HTML表单进行MySQL插入,但是数据不可搜索](/upload/InfoBanner/zyjiaocheng/882/ec5c776ac9a6403d97c55c6b80e95657.jpg)
我创建了一个MySQL数据库,该数据库目前只有一个名为“ users”的表.字段是:ID,名字,姓氏,用户名,电子邮件,关于,位置,网站.我正在使用PHP通过自动提交的HTML表单插入数据.
插入没有问题,但是让我感到震惊的是,当通过HTML表单进行插入时,内部数据不可搜索.例如,如果我尝试执行搜索查询以找到一个具有匹配电子邮件或用户名的用户,则即使该用户确实存在于数据库中,也找不到该用户.只有当我搜索具有其ID(由MYSQL自动添加并自动插入)的用户时,搜索查询才能找到该用户.下面是我的代码.为了排除可能导致此问题的因素,我将所有内容从CSS到验证和安全功能都进行了划分.
<?php
if (isset($_POST['submit'])) {
//$user = new User();
$first_name =$_POST["first_name"];
$last_name =$_POST["last_name"];
$email =$_POST["email"];
$username =$_POST["username"];
$connection=mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
$sql = "INSERT INTO users ";
$sql .= "(first_name, last_name, email, username) ";
$sql .= "VALUES ('{$first_name}', '{$last_name}', '{$email}', '{$username}')";
$result = mysqli_query($connection, $sql);
if ($result) {
echo "Insertion succeed";
} else {
echo "Insertion failed";
}
}
?>
<h2>Sign up</h2>
<form action="sign_up2.php" method="post"/>
<ul>
<li>
First_name: <input type="text" name="first_name" value=" "/>
</li>
<li>
Last_name:<input type="text" name="last_name" value=" "/>
</li>
<li>
Email:<input type="text" name="email" value=" "/>
</li>
<li>
Username:<input type="text" name="username" value=" "/>
</li>
<li>
Password:<input type="password" name="password" value=""/>
</li>
<li>
<input type="submit" name="submit" value="Sign in" />
</li>
</ul>
</form>
另一方面,如果将数据通过MSQL查询脚本直接插入数据库中,则避免使用HTML表和$_POST超全局变量,像这样…
$connection=mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
$sql = "INSERT INTO users ";
$sql .= "(first_name, last_name, email, username) ";
$sql .= "VALUES ('John', 'Doe', 'John@gmail.com', 'john_d')";
$result = mysqli_query($connection, $sql);
if ($result) {
echo "Insertion succeed";
} else {
echo "Insertion failed";
}
….所有字段中的所有数据都可用于查找和匹配任何现有用户:电子邮件,用户名,名字等,而不仅仅是我之前提到的“ ID”字段,当插入时通过HTML表单制作.
我正在使用WAMP Server 2.4,MySQL版本是5.6.12,PHP版本是5.4.12
我希望我对问题的描述很清楚,并且主要希望您能帮助我弄清楚为什么会这样.
提前谢谢了!
阿图罗
解决方法:
做出一些疯狂的猜测,但是…
这是你的问题
value=" "
这将用单个空格字符设置输入字段.当您单击这些字段时,您可能在光标之前或之后都没有注意到空格字符.我想说,您的所有字段值都很有可能以前导或尾随空格结尾.
我要做的第一件事是将value属性设置为空,即
<input type="text" name="first_name" value="">
您还可以在PHP代码中将值设置为trim() …
$first_name = trim($_POST["first_name"]);
最后,您的INSERT语句(可能还有所有其他查询)容易受到SQL注入的攻击.我强烈建议使用准备好的语句,例如
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$connection = new mysqli(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
$stmt = $connection->prepare('
INSERT INTO users (first_name, last_name, email, username)
VALUES (?, ?, ?, ?)
');
$stmt->bind_param('ssss', $first_name, $last_name, $email, $username);
$stmt->execute();
echo "Insertion succeed";
// any problems will trigger an exception so handle that however you want
内容总结
以上是互联网集市为您收集整理的正在使用PHP通过HTML表单进行MySQL插入,但是数据不可搜索全部内容,希望文章能够帮你解决正在使用PHP通过HTML表单进行MySQL插入,但是数据不可搜索所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。