首页 / PHP / php – 准备语句SQL
php – 准备语句SQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 准备语句SQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4156字,纯文字阅读大概需要6分钟。
内容图文
![php – 准备语句SQL](/upload/InfoBanner/zyjiaocheng/903/8624d6c8dab14eacbc3594ea041a1c5b.jpg)
stackoverflow.com的问候社区.
我试图学习预备语句,但我收到了错误信息
我无法解决.我明白它是什么错误,但我不知道如何解决它.
错误消息:警告:mysqli_stmt :: bind_result():绑定变量数与第69行中预准备语句中的字段数不匹配
<?php
if(isset($_POST["submit"])){
//Connect
$mysqli = new mysqli("localhost", "member", "xxxxxx", "websecurity");
if($mysqli->connect_errno) {
die("Connect failed: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error);
}
//Submitt pushed
if(!empty($_POST['user']) && !empty($_POST['pass'])) {
$user= strip_tags($_POST['user']);
$pass= strip_tags($_POST['pass']);
$user = $mysqli->real_escape_string($user);
$pass = $mysqli->real_escape_string($pass);
// Prepare
$sql = "SELECT * FROM login WHERE username = ? AND password = ?";
$stmt = $mysqli->prepare($sql);
if(!$stmt) {
die("Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error);
}
//Prepared statements
$bind_result = $stmt->bind_param("ss", $user, $pass);
if(!$bind_result) {
echo "Bind failed: (" . $stmt->errno . ") " . $stmt->error;
}
//Lets execute this
//Give a value to statements
$user =0;
$pass ='';
$execute_result = $stmt->execute();
if(!$execute_result) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
// This line-> $stmt->bind_result($user, $pass);
$success = mysqli_query($connectt, $sql) or die (mysqli_error($connectt));
if (mysqli_num_rows($success) === 1){
mysqli_query($connectt, $sql) or die (mysqli_error($connectt));
mysqli_close ($connectt);
header("Location: index.php");
}
else {
echo "Wrong name!";
}
$stmt->free_result();
$stmt->close();
}
}
?>
您可以告诉我这是一种登录形式. HTML不相关所以我不会发布它但我会发布包含连接文件.希望比我受过更多教育的人可以发现我看不到的错误,如果我遗漏了任何重要的错误.
包括:
<?php
$connectt = mysqli_connect("localhost","member","xxxxxx","websecurity");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
星期五快乐!
解决方法:
请尝试以下代码:
更新:
<?php
if(isset($_POST["submit"])){
//Connect
$mysqli = new mysqli("localhost", "member", "xxxxxx", "websecurity");
if($mysqli->connect_errno) {
die("Connect failed: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error);
}
//Submitt pushed
if(!empty($_POST['username']) && !empty($_POST['password'])) {
$username= strip_tags($_POST['username']);
$password= strip_tags($_POST['password']);
$username = $mysqli->real_escape_string($username);
$password = $mysqli->real_escape_string($password);
// Prepare
$sql = "SELECT username,password FROM login WHERE username = ? AND password = ?";
$stmt = $mysqli->prepare($sql);
$bind_result = $stmt->bind_param("ss", $username, $password);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows === 1){
header("Location: index.php");
}
else {
echo "Wrong name!";
}
$stmt->free_result();
$stmt->close();
}
}
?>
之前
<?php
if(isset($_POST["submit"])){
//Connect
$mysqli = new mysqli("localhost", "member", "xxxxxx", "websecurity");
if($mysqli->connect_errno) {
die("Connect failed: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error);
}
//Submitt pushed
if(!empty($_POST['username']) && !empty($_POST['password'])) {
$username= strip_tags($_POST['username']);
$password= strip_tags($_POST['password']);
$username = $mysqli->real_escape_string($username);
$password = $mysqli->real_escape_string($password);
// Prepare
$sql = "SELECT username,password FROM login WHERE username = ? AND password = ?";
$stmt = $mysqli->prepare($sql);
if(!$stmt) {
die("Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error);
}
//Prepared statements
$bind_result = $stmt->bind_param("ss", $username, $password);
if(!$bind_result) {
echo "Bind failed: (" . $stmt->errno . ") " . $stmt->error;
}
//Lets execute this
//Give a value to statements
$username =0;
$password ='';
$execute_result = $stmt->execute();
if(!$execute_result) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
$stmt->bind_result($username, $password);
$success = mysqli_query($connectt, $sql) or die (mysqli_error($connectt));
if (mysqli_num_rows($success) === 1){
mysqli_query($connectt, $sql) or die (mysqli_error($connectt));
mysqli_close ($connectt);
header("Location: index.php");
}
else {
echo "Wrong name!";
}
$stmt->free_result();
$stmt->close();
}
}
?>
内容总结
以上是互联网集市为您收集整理的php – 准备语句SQL全部内容,希望文章能够帮你解决php – 准备语句SQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。