使用绑定参数插入 phpmyadmin
Insert into phpmyadmin with bind param
我想将值插入到我的数据库中。我在免费的网络服务器上有 phpMyAdmin 数据库。这是代码:
$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);
问题是我如何在 phpMyAdmin 中插入诸如“... VALUES ('Caroline', 'CC'...”之类的值;它起作用了,我可以插入上面的代码如“... VALUES ('?', '?', '?'...”);但它插入?进入每一列。
这是 table 和 Values( '$name', '? ', '?'..)
:
那么我如何插入带有“ ”的 $name 并绑定参数?
如果我将 bind_param 中的 $name 更改为 '$name',它仍然不起作用。
但是如果我改变 VALUES('$name') 然后它插入正确的值到 table.
如前所述,您的绑定中有 3x s
,但有 5x ?
占位符。
您似乎也想直接在 phpmyadmin 中执行此操作;这不是它的工作原理。那些 placeholders/binding 只能通过您的 website/local 机器从网络浏览器获取 executed/populated 并作为 http://localhost|yourhost/file.php
访问
它需要从服务器和安装了 PHP/MySQL 的环境中执行。
此外,确保您完成此操作后您的表单不会失败;未发布的内容。
将 error reporting 添加到文件顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:显示错误只应在试运行中进行,绝不能在生产中进行。
您还应该检查查询中的错误,是否存在任何类型的约束或与您的 incoming/existing 数据发生冲突。
密码
我还注意到您可能以明文形式存储密码。不推荐这样做。
使用以下之一:
- CRYPT_BLOWFISH
crypt()
bcrypt()
scrypt()
- On OPENWALL
- PBKDF2
- PBKDF2 on PHP.net
- PHP 5.5 的
password_hash()
函数。
- 兼容包(如果PHP < 5.5)https://github.com/ircmaxell/password_compat/
其他链接:
我想将值插入到我的数据库中。我在免费的网络服务器上有 phpMyAdmin 数据库。这是代码:
$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);
问题是我如何在 phpMyAdmin 中插入诸如“... VALUES ('Caroline', 'CC'...”之类的值;它起作用了,我可以插入上面的代码如“... VALUES ('?', '?', '?'...”);但它插入?进入每一列。
这是 table 和 Values( '$name', '? ', '?'..)
:
那么我如何插入带有“ ”的 $name 并绑定参数? 如果我将 bind_param 中的 $name 更改为 '$name',它仍然不起作用。 但是如果我改变 VALUES('$name') 然后它插入正确的值到 table.
如前所述,您的绑定中有 3x s
,但有 5x ?
占位符。
您似乎也想直接在 phpmyadmin 中执行此操作;这不是它的工作原理。那些 placeholders/binding 只能通过您的 website/local 机器从网络浏览器获取 executed/populated 并作为 http://localhost|yourhost/file.php
它需要从服务器和安装了 PHP/MySQL 的环境中执行。
此外,确保您完成此操作后您的表单不会失败;未发布的内容。
将 error reporting 添加到文件顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:显示错误只应在试运行中进行,绝不能在生产中进行。
您还应该检查查询中的错误,是否存在任何类型的约束或与您的 incoming/existing 数据发生冲突。
密码
我还注意到您可能以明文形式存储密码。不推荐这样做。
使用以下之一:
- CRYPT_BLOWFISH
crypt()
bcrypt()
scrypt()
- On OPENWALL
- PBKDF2
- PBKDF2 on PHP.net
- PHP 5.5 的
password_hash()
函数。 - 兼容包(如果PHP < 5.5)https://github.com/ircmaxell/password_compat/
其他链接: