SQL INSERT INTO - 我很困惑

时间:2012-10-13 10:38:58

标签: php mysql

我一直遇到一个小问题......好好看一下这个插入语句。

这是我的连接(在本地服务器上)

$c2d = mysqli_connect("localhost","root","","database name here")or die("connection not set" . mysqli_error);

这是我的插入声明以及我通常如何做。

$insertUsrAccDetQS = "INSERT INTO user-tbl-here (usern, usrp, usere) VALUES ('x','y','z');" or die('no good on 001' . mysqli_error);

当我使用上面这个时,我得到了这种性质的错误......

 Notice: Use of undefined constant mysqli_error - assumed 'mysqli_error'

无论我对它做了什么改变(已经有一个小时了),它总会给我一些错误,所以我对自己说,“让我在phpMyadmin应用程序中手动插入所以我可以看到IT编写SQL INSERT代码的方式,将SQL复制/粘贴到我的应用程序中以查看会发生什么。

当我这样做时,返回的INSERT代码phpMyadmin向我抛出了

$insertUsrAccDetQS = "INSERT INTO `database name here`.`user-tbl-here` (`usern`, `usrp`, `usere`) VALUES ('$x','$y','$z');" or die('no good on 001' . mysqli_error);

果然,我复制/粘贴到我的PHP文档中,运行它并且工作正常,将值输入数据库。

我能看到的唯一区别是

1 - phpMyAdmin将数据库名称放在查询字符串的其余部分前面

2 - 它会在该字符串中的所有名称/值上加上引号。

但我DID在连接声明中命名数据库名称并且我使用了上面的原始插入语句,它始终有效。

所以问题是......是什么给出的?我也在网上看到其他人INSERT语句/表格,例如,在wiki这里,它就像我一直在做的那样形成。

我非常困惑。我很乐意感谢任何解释/链接/提示等。

2 个答案:

答案 0 :(得分:5)

在mysqli_error的末尾添加parens,因为它是一个函数,而不是变量,如下所示:

or die('no good on 001' . mysqli_error() );
                                       ^----- HERE

答案 1 :(得分:2)

mysqli_error是一个函数吗?如果是这样,它需要括号 - mysqli_error()