我想在我的数据库中插入值。我在免费的网络服务器上有phpMyAdmin数据库。这是代码:
$location.path('/login')
问题是如何在phpMyAdmin中插入像" ... VALUES(' Caroline',' CC' ...");并且它可以工作,我可以插入上面的代码,例如" ... VALUES('?','?','?&#39 ; ...&#34);但它插入?进入每一栏。
以下是$con = mysqli_connect("hostname", "user", "password", "databasename");
$name = $_POST["name"];
$username = $_POST["username"];
$password = $_POST["password"];
$email = $_POST["email"];
$phonenumber = $_POST["phonenumber"];
$statement = mysqli_prepare($con, "INSERT INTO User (name, username, password, email, phonenumber)
VALUES (?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "sss", $name, $username, $password, $email, $phonenumber);
mysqli_stmt_execute($statement);
mysqli_stmt_close($statement);
mysqli_close($con);
的表格:
那我怎么能用'插入$ name? '并绑定param? 如果我将bind_param中的$ name更改为&name; $ name'它仍然无法运作。 但是如果我改变VALUES(' $ name'),那么它会在表格中插入正确的值。
答案 0 :(得分:3)
如上所述,您的绑定中有3个s
,但5个?
占位符。
您似乎也想在phpmyadmin中直接执行此操作;这不是它的工作原理。这些占位符/绑定只能通过您的网站/本地计算机从Web浏览器执行/填充,并以http://localhost|yourhost/file.php
需要从服务器和安装了PHP / MySQL的环境执行。
另外,确保您的表单在您完成此操作后不会失败;没有发布的东西。
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。
如果您的传入/现有数据存在任何类型的约束或冲突,您还应检查查询中的错误。
<强>密码强>
我还注意到您可能以纯文本格式存储密码。不建议这样做。
使用以下其中一项:
crypt()
bcrypt()
scrypt()
password_hash()
功能。其他链接: