2012-02-15 155 views
1

我在与一个SQL查询从PHP问题INSERT语句不从PHP代码的工作,但在phpMyAdmin工作

查询是

mysql_query("INSERT INTO `pwn_users` (`name`,`email`,`password`) values ('$chosen_name','$chosen_mail','$chosen_pw')")) 

当我打印查询文本这样:

print "INSERT INTO `pwn_users` (`name`,`email`,`password`) values ('$chosen_name','$chosen_mail','$chosen_pw')"; 

将返回我的输入是这样的:

INSERT INTO `pwn_users` (`name`,`email`,`password`) values ('Testuser','[email protected]','testpass') 

数据虽然没有插入表中。但是当我将最后一条语句直接复制到phpmyAdmin的SQL Querybox时,它会正确插入。

+4

你有开放的连接吗? – PeeHaa 2012-02-15 10:42:29

+0

除此之外,您可能想要使用准备好的语句,您是否连接了正确的用户?测试select是否正常工作,也许你有一些连接问题。你有没有收到任何错误信息? – reox 2012-02-15 10:44:00

+0

如果可以,请尝试使用PHP的'mysqli'库而不是'mysql'。 – wecsam 2012-02-15 10:51:00

回答

2

我不知道它是否是一个错字,但是您的第一行代码最后有一个丰富的),它缺少一个分号。

如果使用mysql_query()只有一个参数,它将使用"the last link opened by mysql_connect()"。你确定你有一个开放的连接?

如果你确定你有一个开放的连接,你可以在拨打mysql_query()之后总是尝试拨打mysql_error()以获得更多关于可能错误的信息。

编辑;以回应其他答案;你的引号,撇号或反转撇号没有任何问题。

+1

mysql_query($ queryStr)或死亡(mysql_error()); mysql_error给了我一个字段,我没有声明在查询中没有一个错误默认值。直接在表格中修复这个问题。插入作品后,我没有在查询中调用每个字段都有一个默认值。你可以在数据库本身设置一个默认值 - 你可以使用PHPMyAdmin来完成它。如果您转到表格并点击顶部的结构选项卡,然后点击相关字段的编辑链接(小笔),您可以选择一个名为Default的选项 - 将该选项框设置为“按照定义”,然后输入下面的文本字段中的默认值。 – user1211030 2012-02-15 12:55:54

相关问题