PHP:在OOP上使用POST并在MySql中存储

PHP:在OOP上使用POST并在MySql中存储,php,mysql,post,Php,Mysql,Post,好吧,我对在php上使用oop有点陌生,所以这就是我tryna所做的。获取文本框的值,将它们放入数组,然后将它们存储在数据库中,但问题是它不存储数据 <?php require ('employmentfunc.php'); ?> <html> <head> </head> <body> <?php $arr = array(isset ($_POST['company']), isset ($_POST['position']

好吧,我对在php上使用oop有点陌生,所以这就是我tryna所做的。获取文本框的值,将它们放入数组,然后将它们存储在数据库中,但问题是它不存储数据

<?php
require ('employmentfunc.php');
?>
<html>
<head>
</head>
<body>
<?php 
$arr = array(isset ($_POST['company']), isset ($_POST['position']));

if (isset($_POST['ok']))
{
    $a = new empfunc();
    $a->SaveA($arr);
}
?>
<form name="emp" action="employmentform.php" method="POST">

<TD><input type="text" name="company">
<td><input type="text" name="position">
<input type="submit" class="button1" name="ok">
</form>
</body>
</html>



<?php
class empfunc{

function saveA($array){
    $sqlconnect = mysqli_connect("localhost", "root","","employment");
    $sqlquery = "INSERT INTO info(`Company`, `Position`) VALUES ('$array[0]', '$array[1]')";
    mysqli_query ($sqlconnect, $sqlquery);
}
}
?>


问题在于构建
$arr
变量的方式。您正在存储来自
isset
函数调用的布尔结果,而不是存储数据本身。我会用几行代码重写这部分代码,使其更具可读性。由于您正在存储isset的结果,因此存储在数据库中的值将为0或1。相反,不要使用
isset
功能,或者将其更改为三元运算符,以存储一些未设置的默认数据:

$arr = array(
    isset ($_POST['company']) ? $_POST['company'] : 'No Company', 
    isset ($_POST['position']) ? $_POST['position'] : 'No Position'
);
或者,如果您只想跳过
isset
验证:

$arr = array($_POST['company'], $_POST['position']);

它运行时没有错误吗?您似乎在方法名称中有输入错误(顶部大写,定义处小写)运行此
echo“插入信息(
Company
Position
)值(“$array[0]”,“$array[1]”)
从哪里来的
$sqlconnect
易受SQL注入攻击@man0v运行,但在我的数据库中存储了1,这很烦人是的,它工作了,但我还有一个问题,我有一个单选按钮,它应该简单地返回是或否,但在加载表单时会显示:注意:未定义的索引:C:\xampp\htdocs\func\employmentform.php第34行中的军事:我解决了这个问题了吗哈哈,我曾经在c#php上做过的事情,采用了完全不同的方法