php - 输入文本值时数据库无法创建记录 ($_POST)

标签 php mysql post

也许我犯了一些明显的初学者错误,但我似乎无法弄清楚为什么会发生这种情况。

奇怪的是,只有当我在“输入框”中输入数字时,代码似乎才能正常工作。我在 myphpadmin 面板中检查这一点,它显示已创建一条新记录。但是,如果我尝试输入符合我的目的的字符串(例如:“hello”),数据库中不会出现新记录...

简而言之,只有当我在“输入框”中输入数字时数据库才会更新,而当我输入字符串时数据库不会更新。

有什么想法可能会发生这种情况吗?这让我疯狂。如果有帮助,“Company”字段的数据类型为 VARCHAR,排序规则设置为 latin1_swedish_ci

PHP代码如下:

<?php


//Retrieve data from 'inputbox' textbox

if (isset($_POST['submitbutton']))
    {
    $comprating = $_POST['inputbox'];

    //Create connection

        $con = mysqli_connect("localhost","root","","test_db");

            if (mysqli_connect_errno())
                {
                    echo "Failed to connect to MySQL: " . mysqli_connect_error();
                }

    //Insert data into 'Ratings' table

    mysqli_query($con,"INSERT INTO Ratings (Company,Score)
    VALUES ($comprating,1)");

    mysqli_close($con);



    }


?>

HTML 代码是:

<form method="post">

    <input type="text" name="inputbox">
    <input type="submit" name="submitbutton">

</form>

干杯

最佳答案

尝试这个查询,

mysqli_query($con,"INSERT INTO Ratings (Company,Score)
VALUES ('$comprating',1)");`
        ^           ^

请注意保留字符串值的单引号,并且不要忘记在将输入插入数据库之前对其进行清理。

标准转义示例:

$compating = mysqli_real_escape_string($compating) 在执行使用 $compating

的查询之前

关于php - 输入文本值时数据库无法创建记录 ($_POST),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22019953/

相关文章:

java - Android http请求POST

Java servlet : request. getParameter() 从 POST 请求中的查询字符串返回一个参数

php - 为什么 imap uid 不是唯一的?在不同的文件夹?

php - 使用输入和输出参数创建 MySQL 存储过程

python - 如何使用 MySQL 作为 django 项目的数据库?

MySQL 更新 .. WHERE IN .. RAND() .. LIMIT

php - 发布多个复选框值的数组

javascript - 我的 Json 在使用 Ajax 发送时被切断

php - 迁移后更新 Wordpress 密码导致登录错误

MySQL 索引 |与 LIKE 一起使用