2015-09-04 80 views
-1

我想这个代码它不插入数据,但它说“是”

<? 
$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); 
} 
?> 

但它不插入数据,但回声“是”。 为什么它没有插入我已经检查过所有的输入名称和列名,这是没有错的

+0

取代'回声 “是”'做'回声mysqli_error($链接)'这里复制的结果 – Ahmad

回答

2

是的,这是预期的行为。你if-else statement样子:

if(mysqli_query($link,$sqlb)) { 
// display "no" if query is executed successfully 
} else { 
// display "yes" if query is not executed successfully 
} 

mysqli_query()将返回false失败,否则它将成功返回mysqli_result objecttrue

所以,只是交换的“是”的位置和“无”,如果你仍然不知道为什么它不工作,使用下面的行放在else statement

echo mysqli_error($link); 
+0

谢谢非常!这是我愚蠢的错误) – qwaaz

0

如果它回声“是”,那么预计它不会插入数据,对吧?

0

您应该使用prepeared声明,您避免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 = "[email protected]" 
$stmt->execute(); 

$fullname ="Mickey Mouse"; 
$lastname = "Mouse"; 
$username = "mickey"; 
$password = sha1("IloveDaisy"); 
$mail = "[email protected]" 
$stmt->execute(); 

echo "New records created successfully"; 

$stmt->close(); 
$conn->close(); 
?> 

这个例子是从W3Schools复制和编辑为您的权益。

约prepeared语句的更多信息:http://php.net/manual/en/pdo.prepared-statements.php

0

尝试这样的:

if(mysqli_query($link,$sqlb) === FALSE){ 
    echo mysqli_error($link); 
}else { 
    echo "yes"; 
} 
相关问题