也许我犯了一些明显的初学者错误,但我似乎无法弄清楚为什么会发生这种情况。
奇怪的是,只有当我在“输入框”中输入数字时,代码似乎才能正常工作。我在 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/