“无法将信息插入数据库”中的mysql_query错误


Error with mysql_query in Can't insert information into database

我用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 等替换为数据库中的实际列名。