PHP:在OOP上使用POST并在MySql中存储
好吧,我对在php上使用oop有点陌生,所以这就是我tryna所做的。获取文本框的值,将它们放入数组,然后将它们存储在数据库中,但问题是它不存储数据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
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上做过的事情,采用了完全不同的方法