我一直遇到一个小问题......好好看一下这个插入语句。
这是我的连接(在本地服务器上)
$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这里,它就像我一直在做的那样形成。
我非常困惑。我很乐意感谢任何解释/链接/提示等。
答案 0 :(得分:5)
在mysqli_error的末尾添加parens,因为它是一个函数,而不是变量,如下所示:
or die('no good on 001' . mysqli_error() );
^----- HERE
答案 1 :(得分:2)
mysqli_error是一个函数吗?如果是这样,它需要括号 - mysqli_error()