php - 我无法使用 php 将文本上传到 Mysql

标签 php html mysql

我正在尝试创建一个评论板。这是我由 PHPMyAdmin 创建的表 enter image description here

我将 guestID 设置为主键并自动递增,但每次我尝试通过 php 输入新的客人名称时,它只能创建一个具有新 ID 但没有名称的新列。 enter image description here

这是我的代码:

<?php
mysql_connect("localhost","root","root");
mysql_select_db("guest");
mysql_query("set names utf8");

$guestName=$_POST['guestName'];


mysql_query("insert into guest value(`guestID`, `guestName`)");


?>
<!DOCTYPE html>


<body>
<div class="container">
<div class="top">
<h3>New comment</h3>
</div>
<form id="form1" name="form1" method="post" action="" class="form-horizontal">
    <div class="form-group">
        <label for="guestName" class="col-sm-4 control-label">Name:</label>
        <div class="col-sm-6">
            <input type="text" class="form-control" placeholder="guestName" name="guestName" id="guestName" />
        </div>


    <div class="button">
        <input type="submit" name="button" id="button" value="send" class="btn"/>
    </div>
</form>

最佳答案

您没有将变量的值替换到查询中。值列表之前的关键字是 values,而不是 value

$guestName = mysql_real_escape_string($_POST['guestName']);

mysql_query("insert into guest (guestName) values ('$guestName')");

请注意,您必须在字符串周围使用单引号,而不是反引号。参见 When to use single quotes, double quotes, and backticks in MySQL

您还应该升级到 mysqliPDO 并使用准备好的语句而不是过时的 mysql 扩展。但是如果你使用mysql,你应该转义用户输入以防止SQL注入(inject)。

关于php - 我无法使用 php 将文本上传到 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46742060/

相关文章:

PHP:过滤和发布文本文件

php MySQL在嵌套div中循环

php - 如何在 codeigniter 中更新表而不重复

html - HTML 滚动条的行/页大小是如何确定的

mysql - 使用 JOIN 进行 MySQL 查询并获取默认值(如果其中一些不存在)

php - Mysql中的Order By问题

MySQL geom 偏移测试

php - Vue 资源发布请求内容类型

html - 如何防止 contenteditable 标签在子元素中被继承?

html - 图像适合最大尺寸同时保持纵横比的响应式矩形