douci1196 2014-02-18 18:14
浏览 27
已采纳

使用php插入mysql

I am working with php and mysql for the first time. The goal is to have a table that store email addresses to form a mailing list for a newsletter. my table Emails has 2 columns ID (INT auto increment) and email (varchar, 255)

I can connect to the database but I cannot write to it. I think my problem is in the syntax of my INSERT INTO statement. I have seen many examples and they seem to use different syntax specifically around the values. form code:

    <form method="post" action="email.php" class="form-container">
    <div class="form-title"><h2>Sign up for my newsletter!</h2></div>
    <div class="form-title">Email Address</div>
    <input class="form-field" required="required" placeholder="example@mail.com" type="text" name="newEmail" /><br />
    <div class="submit-container">
    <input class="submit-button" type="submit" value="Submit" /></div>
  </form>

php code:

    <?php
    $dbHost = "localhost";
    $dbUser = "input";
    $dbPass = "input";
    $dbName = "MailingList";


$conn= mysqli_connect ($dbHost, $dbUser, $dbPass, $dbName);

if(mysqli_connect_errno()) {
die("FAIL:". mysqli_connect_error() . "(" . mysqli_connect_errno() . ")");
}

$addEmail = "mysqli_real_escape_string($_POST['newEmail'])";

$query ="INSERT INTO Emails (email) VALUES ('$addEmail')"

mysqli_close($conn)
?>
  • 写回答

4条回答 默认 最新

  • dtutlamjasblef7982 2014-02-18 18:17
    关注

    You need to execute the query, not just write it.

    $query ="INSERT INTO Emails (email) VALUES ('$addEmail')";
    mysqli_query($conn, $query);
    

    If you use a prepared statement, you can save yourself the trouble of escaping:

    $stmt = mysqli_prepare($conn, "INSERT INTO Emails (email) VALUES (?)");
    mysqli_stmt_bind_param($stmt, "s", $_POST['newEmail']);
    mysqli_stmt_execute($stmt);
    

    If you want non-procedural style (aka oop), this would look like the following

    $stmt = $conn->prepare("INSERT INTO Emails (email) VALUES (?)");
    $stmt->bind_param("s", $_POST['newEmail']);
    $stmt->execute();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。