Php 它不是插入数据,而是说“是”

Php 它不是插入数据,而是说“是”,php,sql,Php,Sql,我试过这个密码 <? $link = mysqli_connect('localhost', 'root', '123'); if (!$link) { die('Could not connect: ' . mysqli_error()); } if(isset($_POST['Murad'])){ $db_selected = mysqli_select_db($link,'websiteusers' ); $firstname=$_POST['firstname']; $la

我试过这个密码

<?
$link = mysqli_connect('localhost', 'root', '123');
if (!$link) {
    die('Could not connect: ' . mysqli_error());
}
if(isset($_POST['Murad'])){
$db_selected = mysqli_select_db($link,'websiteusers' );
$firstname=$_POST['firstname'];
$lastname=$_POST['lastname'];
$userName=$_POST['username'];
$password=$_POST['pwd1'];
$email=$_POST['email'];

$sqlb = "INSERT INTO websiteusers (fullname,lastname,userName,password,email)
VALUES ('$firstname', '$lastname', '$userName', '$password', '$email')";
if(mysqli_query($link,$sqlb)){
            echo "no";
}else {
    echo "yes";
}
 mysqli_close($link);
}
?>
但它不是在插入数据,而是回应是的。
为什么不插入?我已经检查了所有输入名称和列名。没有错。

如果它回显“是”,则预期它不会插入数据,对吗?

是,这是预期的行为。您的if-else语句如下所示:

if(mysqli_query($link,$sqlb)) {
// display "no" if query is executed successfully
} else {
// display "yes" if query is not executed successfully
}
mysqli_查询在失败时将返回false,否则在成功时将返回mysqli_结果对象或true

因此,只需交换yes和no的位置,如果您仍然想知道它为什么不起作用,请在else语句中使用以下行:


您应该使用预搜索语句,避免SQL注入,并且如果更改数据库,则更容易维护代码

<?php
$servername = "localhost";
$username = "root";
$password = "123";
$dbname = "websiteusers";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$query = "INSERT INTO websiteusers (fullname, lastname, userName, password, email)
VALUES (?, ?, ?, ?, ?)";

// prepare and bind
$stmt = $conn->prepare($query);
$stmt->bind_param("sssss", $fullname, $lastname, $username, $password, $email);

// set parameters and execute
$fullname ="Donald Duck";
$lastname = "Duck";
$username = "donalod";
$password = sha1("DonaldDuck1!");
$mail = "donald@duck.com"
$stmt->execute();

$fullname ="Mickey Mouse";
$lastname = "Mouse";
$username = "mickey";
$password = sha1("IloveDaisy");
$mail = "mickey@mouse.org"
$stmt->execute();

echo "New records created successfully";

$stmt->close();
$conn->close();
?>
此示例是为您的利益而复制和编辑的

有关预听语句的更多信息:

尝试以下操作:

if(mysqli_query($link,$sqlb) === FALSE){
    echo mysqli_error($link);
}else {
    echo "yes";
}
不是echo yes,而是echo mysqli_error$link并将结果复制到此处
if(mysqli_query($link,$sqlb) === FALSE){
    echo mysqli_error($link);
}else {
    echo "yes";
}