我用php写了这个查询:
$query = "insert into admin values($user,$pass,$email,$signature)";
mysql_query($query);
但它有问题,无法在数据库中插入信息。为什么?数据库没有任何错误。
你必须把字符串放在引号内。尝试以这种方式检查错误消息。
$query = "insert into admin values('$user','$pass','$email','$signiture')";
mysql_query($query) or die(mysql_error());
您需要引用字符串值:
$query = "insert into admin values('$user','$pass','$email','$signiture')";
此外,您的值计数必须与您的列计数完全匹配,否则您必须明确列出您的列:
$query = "insert into admin (`username`, `password`, `email`, `signiture`) values('$user','$pass','$email','$signiture')";
"signiture"也被拼写错误。
首先,您需要在变量周围加上单引号。 此外,您需要确保变量已正确转义,因为如果其中一个变量具有单引号,则查询仍将失败。
$query = sprintf("insert into admin values('%s','%s','%s','%s')",
mysql_real_escape_string($user),
mysql_real_escape_string($pass),
mysql_real_escape_string($email),
mysql_real_escape_string($signiture));
mysql_query($query);
最后,正如其他用户所指出的,通常最好显式列出要插入的列。
你需要像这样用单引号括起来你的值
$query = "insert into admin values('$user','$pass','$email','$signiture')";
如果上述方法不起作用,请尝试使用以下语法:
INSERT INTO TABLE(col1,col2,col3) VALUES('val1','val2','val3')
试试这个(可能不会有什么不同,但值得一试):
$query = "insert into admin (userColumnName, passColumnName, emailColumnName, sigColumnName) values ($user, $pass, $email, $signature)";
mysql_query($query);
您必须将 userColumnName
等替换为数据库中的实际列名。