【问题标题】:Why isn't my data inserted into the DB table?为什么我的数据没有插入到数据库表中?
【发布时间】:2013-06-22 21:30:51
【问题描述】:

我没有看到问题。我的所有数据都不会插入注册数据库。请检查 INSERT INTO 部分。我是编码的初学者,所以我不太了解这些东西。请帮帮我。

<?php 

**my info is here**

//Connect to database 

mysql_connect ($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error()); 
mysql_select_db($dbname) or die(mysql_error()); 
?> 


<?php 
if(isset($_POST['submit'])){ 
$username = $_POST[user]; 
$password = $_POST[pass]; 

// lets check to see if the username already exists 

$checkuser = mysql_query("SELECT username FROM register WHERE username='$username'");  

$username_exist = mysql_num_rows($checkuser); 

 if($username_exist > 0){ 
echo "I'm sorry but the username you specified has already been taken.Please pick      another one."; 
unset($username); 
exit(); 
}  

// lf no errors present with the username 
// use a query to insert the data into the database. 

$query = ("INSERT INTO register (username, password) 
VALUES ('$username', '$password')"); 
mysql_query($query) or die(mysql_error()); 
mysql_close($query); 


} 


?>

【问题讨论】:

  • 你遇到了什么错误?
  • 您将原始密码存储在数据库中,而不是转义您的输入或使用参数化查询。这已经不是一个好的开始。你应该先改用 PDO 来解决这个问题!
  • 你真的不应该使用任何mysql_* 函数,而是使用 MySQLi 或 PDO。
  • 一方面,$username = $_POST[user]; 应该是 $username = $_POST['user'];$password = $_POST[pass]; 应该是 $password = $_POST['pass'];。你省略了撇号。可能只是“为什么”。改变这些,看看有什么好处。
  • 解释一下,如果 php 不理解它们,它会将任何裸词转换为字符串。这是一个可怕的“功能”,但它就在那里。不只是在 php 中,我相信 perl 曾经这样做过,也许现在仍然如此。 (编辑:哎呀 minitech 打败了我)

标签: php mysql


【解决方案1】:

评论者说你应该使用 mysqli 或 PDO 是正确的,但试试看它是否能解决你的问题:

if(isset($_POST)){ 
    $username = mysql_real_escape_string($_POST['user']); 
    $password = mysql_real_escape_string($_POST['pass']); 

    // lets check to see if the username already exists 

    $checkuser = mysql_query("SELECT username FROM register WHERE username='$username'");  

    $username_exist = mysql_num_rows($checkuser); 

    if($username_exist > 0){ 
        echo "I'm sorry but the username you specified has already been taken. Please pick another one."; 
        unset($username); 
        exit(); 
    }  

    // if no errors present with the username 
    // use a query to insert the data into the database. 

    $query = ("INSERT INTO register (username, password) VALUES ('$username', '$password')"); 
    mysql_query($query) or die(mysql_error()); 
    mysql_close(); 
} else {
    echo "No form submission detected.";
}

如果您仍有问题,我想查看您提交到此页面的表单以及注册的表格布局。

【讨论】:

    猜你喜欢
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    相关资源
    最近更新 更多