gpt4 book ai didi

php - 在mysql中存储tinyint值

转载 作者:行者123 更新时间:2023-11-29 08:18:38 25 4
gpt4 key购买 nike

我有两个输入字段,用户可以在其中输入人员姓名,然后选择他们的角色:教师讲师。对于角色,我使用 tinyint 来确定它是 true 还是 false(01)。我在将值保存到 mysql 数据库时遇到困难。提交查询时,不会存储任何内容。 EXAMPLE

<?php

if(isset($_POST['submit'])){

$con = new mysqli(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);


$person1_role1 = empty($_POST['role1'][1]) ? 0 : 1;

$person2_role2 = empty($_POST['role2'][1]) ? 0 : 1;

$person_name1 = $_POST['person_name1'];
$person_name2 = $_POST['person_name2'];

$option = $_POST['role'];

if($option == 'faculty'){
mysqli_query($con,"INSERT INTO person (contact_role, person_name) VALUES ($person1_role1, $person_name1)");
} elseif ($option == 'instructor') {
mysqli_query($con,"INSERT INTO person (instructor_role, person_name) VALUES ($person2_role2, $person_name2)");
}

print_r($_POST);

}

?>
<form action="test2.php" method="POST">
<b>Select the role for the person</b>
</br>
</br>
Name:<input type="text" name="person_name1">
<input type="checkbox" name="role1[]" value="faculty">faculty
<input type="checkbox" name="role1[]" value="instructor">instructor<br><br>
Name:<input type="text" name="person_name2">
<input type="checkbox" name="role2[]" value="faculty">faculty
<input type="checkbox" name="role2[]" value="instructor">instructor<br><br>

<input value="SAVE" name="submit" type="submit">

</form>

CREATE TABLE IF NOT EXISTS `person` (
`person_id` int(11) NOT NULL auto_increment,
`faculty_role` tinyint(1) NOT NULL,
`instructor_role` tinyint(1) NOT NULL,
`person_name` varchar(50) NOT NULL,
PRIMARY KEY (`person_id`),
);

最佳答案

您使用$option = $_POST['role'],但“role”不在您的POST数据中,请参阅您的print_r($_POST)。因此 $option 既不是“教师”也不是“讲师”,因此您的 INSERT 查询不会被调用。

您说一个人可以同时担任这两个角色,但您使用了两个 INSERT 查询。太奇怪了。以下内容会更有意义:

$person1_faculty = in_array($_POST['role1'], 'faculty') ? 1 : 0;
$person1_instructor = in_array($_POST['role1'], 'instructor') ? 1 : 0;
$person1_name = mysqli_real_escape_string($_POST['person_name1']);
mysqli_query(
$con,
"INSERT INTO person (faculty_role, instructor_role, person_name) VALUES " .
"(" . $person1_faculty . ", " . $person1_instructor . ", '" . $person1_name . "')"
);

你的$_POST['role1']是一个数组,检查in_array如果教师和/或讲师在其中。并使用mysqli_real_escape_string以防止 SQL 注入(inject)。

关于php - 在mysql中存储tinyint值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20022027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com