SQL INSERT INTO - 我很困惑

som*_*dow 0 php mysql

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

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

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

这是我的插入语句以及我通常如何做.

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

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

 Notice: Use of undefined constant mysqli_error - assumed 'mysqli_error'
Run Code Online (Sandbox Code Playgroud)

无论我做了什么改变(已经在它上面大约一个小时),它总是给我一些错误,所以我对自己说," 让我在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);
Run Code Online (Sandbox Code Playgroud)

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

我能看到的唯一区别是

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

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

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

所以问题是......什么给出了什么?我也在网上看到了其他人的INSERT陈述/形式,例如,在这个wiki中,它就像我一直在做的那样形成.

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

Nel*_*son 5

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

or die('no good on 001' . mysqli_error() );
                                       ^----- HERE
Run Code Online (Sandbox Code Playgroud)