php - 无法插入我的数据 : PHP/MYSQL on Cloud9

标签 php mysql phpmyadmin cloud9-ide

我在 cloud9 上进行一个学校项目,我正在尝试测试一些 MySQL 查询,但在 phpMyAdmin 中没有使用此代码的新行。

当我尝试从 HTML 表单中尝试时,我得到了“连接成功FOO”,“BAR”没有回显;我做错了什么?

<?php
//on se connecte à la base
$servername = getenv('IP');
$username = getenv('C9_USER');
$password = "";
$database = "projetPHP";
$dbport = 3306;

// Create connection
$bdd = new mysqli($servername, $username, $password, $database, $dbport);


// Check connection
if ($bdd->connect_error) {die("Connection failed ".$bdd->connect_error);} 

echo "Connected successfully (".$bdd->host_info.")";
$pseudonyme = $_POST['pseudo'];
$mot_de_passe = $_POST['mdp'];
$confirm_mdp = $_POST['confirm_mdp'];
$email = $_POST['email'];

if ($mot_de_passe == $confirm_mdp)
{
 //on crypte le mot de passe
 $mot_de_passe = sha1($mdp);

 echo "FOO";

 $req = $bdd->prepare('INSERT INTO membres(pseudonyme, mot_de_passe, email, date_inscription) VALUES(:pseudonyme, :mot_de_passe, :email, CURDATE())'
 $req->execute(array(
  ':pseudonyme' => $pseudonyme,
  ':mot_de_passe' => $mot_de_passe,
  ':email' => $email))
 echo "BAR";
}
?>

最佳答案

将数组放入 ->execute( [array()] )是一个 PDO 方法。

mysqli中是->execute( void )它不接受参数。

您需要使用mysqli_stmt::bind_param在您的 -execute()

之前

尝试将代码更改为

$req = $bdd->prepare('INSERT INTO membres(pseudonyme, mot_de_passe, email, date_inscription) VALUES(?, ?, ?, CURDATE())');
$req->bind_param("sss", $pseudonyme, $mot_de_passe, $email);
$req->execute();

关于php - 无法插入我的数据 : PHP/MYSQL on Cloud9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30548682/

相关文章:

php - 我怎么知道谷歌蜘蛛或其他蜘蛛是否访问了我的页面?

php - Codeigniter 无法使用 join 方法从数据库表中删除行

php - 出色地处理从代码中不同位置浮出的非对象错误的属性

mysql - 对于这个(不允许的)带有嵌套 SELECT 的 UPDATE,是否有替代方法?

java - 将 MYSQL 日期时间值转换为 UTC 时区格式 yyyy-MM-dd'T'HH :mm:ss'Z'

php - 如何通过本地安装的wamp phpMyAdmin访问Openshift mysql?

mysql - 连接到 AWS 生产数据库的问题

php - 如何从mysql中提取包含特殊字符的数据?

mysql - 如何在 MySql 中将拉丁字符转换为相应的 unicode 转义序列?

mysql - 添加新行后如何自动排序数据库表中的 ID?