我的PHP代码不允许我插入到我的mysql表中


My PHP code will not let me insert into my mysql table

我尝试了我能想到的一切,我一遍又一遍地看。我添加了echo ();以查看问题是否是其他问题。一切都像在服务器上一样拼写。我不知道还能做什么。请帮忙!!

<?php
include('../lock.php');
$username    =    $login_session;  
$characterName    =    mysql_real_escape_string($_POST['characterName']);  
$gender =    mysql_real_escape_string($_POST['gender']);   
$height = "58" + rand(2, 20);   
$weight = "120" * rand(2, 8);
echo ($id . "<br />");    
echo ($username . "<br />");  
echo ($characterName . "<br />");  
echo ($gender . "<br />");  
echo ($height . "<br />");   
echo ($weight . "<br />"); 
if(isset($_POST['nc1'])) 
{  
$query    =    "INSERT INTO character(id, username, characterName, gender, height,   weight) VALUES ('$id', '$username', '$characterName', '$gender', '$height', '$weight')";  
mysql_query($query) or die('Error: ' . mysql_error());  
//header('location:success.php');   
echo ("success");  
}  
?>

2014 年 1 月 29 日 - 我已经进行了您建议的更新(但 mysqli),并且一切都正确回显,mysql_error() 返回空白但存在错误。开机自检工作正常。我仍然不知道如何解决它。连接也正确。

我收回,错误是:您的 SQL 语法有误;检查与您的MySQL服务器版本相对应的手册,了解在第1行的"字符(ID,用户名,字符名称,性别,高度")附近使用的正确语法

首先,您必须在问题中指定数据库的逻辑结构,并且您的id似乎是主键,并且您已经完成了$id = $id。这可能会导致 id 重复或 null,因此是否设置了对该变量的第一次检查,并检查其他约束,例如 not null。如果它在字段中应用并且未满足,则也无法插入行。

其次检查您的数据库连接字符串,

如果您可以通过连接字符串访问数据库,例如,

boolean function connect($host, $uname , $pass){
if(mysql_connect($host, $uname, $pass))
return true;
else 
return false;
}

试试这个,也许你可以插入行

确保你的sql_connect是正确的,如果你使用的是localhost那么你应该有类似的东西

mysql_connect("本地主机","根","密码")或死亡(mysql_error)

确保使用或死亡,因为这会显示数据库连接可能遇到的任何错误