php中的mysql_query出错 - 无法将信息插入数据库

时间:2011-05-10 21:33:51

标签: php mysql

我在php中写了这个查询:

$query = "insert into admin values($user,$pass,$email,$signature)";
mysql_query($query);

但它有问题,无法在数据库中插入信息。为什么? 数据库没有任何错误。

5 个答案:

答案 0 :(得分:4)

您必须将字符串放在引号内。 尝试这种方式并检查错误消息。

$query = "insert into admin values('$user','$pass','$email','$signiture')";
mysql_query($query) or die(mysql_error());

答案 1 :(得分:1)

您需要引用字符串值:

$query = "insert into admin values('$user','$pass','$email','$signiture')";

此外,您的值计数必须与您的列数完全匹配,否则您必须明确列出您的列:

$query = "insert into admin (`username`, `password`, `email`, `signiture`)  values('$user','$pass','$email','$signiture')";

此外,“签名”也是错误拼写的。

答案 2 :(得分:1)

首先,您需要在变量周围加上单引号。此外,您需要确保变量为properly escaped,因为如果您的某个变量只有一个引号,您的查询仍会失败。

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

最后,正如其他用户所指出的那样,明确列出您希望插入的列通常是个好主意。

答案 3 :(得分:0)

你需要用这样的单引号来包围你的价值

$query = "insert into admin values('$user','$pass','$email','$signiture')";

如果上述方法无效,请尝试使用以下语法:

INSERT INTO TABLE(col1,col2,col3) VALUES('val1','val2','val3')

答案 4 :(得分:0)

试试这个(可能没什么区别,但值得一试):

$query = "insert into admin (userColumnName, passColumnName, emailColumnName, sigColumnName) values ($user, $pass, $email, $signature)";
mysql_query($query);

您必须使用数据库中的实际列名替换userColumnName等。