2017-10-05 116 views
0

尝试检查页面可以提交的变量,但数据无法发送到数据库,已经检查了一切,我不知道我是否错过了一些东西。PHP和SQL无法从数据库发送数据

如果($ _ SERVER [ 'REQUEST_METHOD'] == 'POST'){

$applicant_ilname = $mysqli->real_escape_string($_POST['applicant_ilname']); 
    $applicant_ifname = $mysqli->real_escape_string($_POST['applicant_ifname']); 
    $applicant_imname = $mysqli->real_escape_string($_POST['applicant_imname']); 
    $isingle = $mysqli->real_escape_string($_POST['isingle']); 
    $imarried = $mysqli->real_escape_string($_POST['imarried']); 
    $iwidow = $mysqli->real_escape_string($_POST['iwidow']); 
    $iwidower = $mysqli->real_escape_string($_POST['iwidower']); 
    $imale = $mysqli->real_escape_string($_POST['imale']); 
    $ifemale = $mysqli->real_escape_string($_POST['ifemale']); 
    $initial_age = $mysqli->real_escape_string($_POST['initial_age']); 
    $initial_homeaddress = $mysqli->real_escape_string($_POST['initial_homeaddress']); 
    $ibMonth = $mysqli->real_escape_string($_POST['ibMonth']); 
    $idateDay = $mysqli->real_escape_string($_POST['idateDay']); 
    $ibYear = $mysqli->real_escape_string($_POST['ibYear']); 
    $ibPlace = $mysqli->real_escape_string($_POST['ibPlace']); 
    $aiPurpose = $mysqli->real_escape_string($_POST['aiPurpose']); 


    $_SESSION['applicant_ilname'] = $applicant_ilname; 
    $_SESSION['applicant_ifname'] = $applicant_ifname; 
    $_SESSION['applicant_imname'] = $applicant_imname; 
    $_SESSION['isingle'] = $isingle; 
    $_SESSION['imarried'] = $imarried; 
    $_SESSION['iwidow'] = $iwidow; 
    $_SESSION['iwidower'] = $iwidower; 
    $_SESSION['imale'] = $imale; 
    $_SESSION['ifemale'] = $ifemale; 
    $_SESSION['initial_age'] = $initial_age; 
    $_SESSION['ibMonth'] = $ibMonth; 
    $_SESSION['idateDay'] = $idateDay; 
    $_SESSION['ibYear'] = $ibYear; 
    $_SESSION['ibPlace'] = $ibPlace; 
    $_SESSION['aiPurpose'] = $aiPurpose; 


    $sql = "INSERT INTO initialform (applicant_ilname, applicant_ifname, applicant_imname, isingle, imarried, iwidow, iwidower, imale, ifemale, initial_age, ibMonth, idateDay, ibYear, ibPlace, aiPurpose)" ."VALUES('$applicant_ilname', '$applicant_ifname', '$applicant_imname', '$isingle', '$imarried', '$iwidow', '$iwidower', '$imale', '$ifemale', '$initial_age', '$ibMonth', '$idateDay', '$ibYear', '$ibPlace', '$ibPlace', '$aiPurpose')"; 


    } 


?> 
+5

我没有看到你正在查询/执行的地方。 –

+1

......或者我的眼睛在欺骗我。 –

回答

0

你错过了查询的 “执行力” 的一部分。

在$ SQL右后文件的末尾=添加:

mysqli_query($conn, $sql); 

其中$ conn是在您配置数据库连接的变种。

另外请记住,尽管$ mysqli-> real_escape_string是一件好事,您必须验证您的数据,否则您可能会尝试将空值或字符串值插入到错误的字段中。

尝试使用prepared statementscatch the error

+1

这是更多的评论[已经说过](https://stackoverflow.com/questions/46590345/php-and-sql-unable-to-send-data-from-database#comment80133712_46590345)比答案。一个好的答案***总是会有一个解释,包括代码,做什么以及为什么这样做,不仅是为了OP,还是为了将来SO的访问者。 –

+0

$ sql =“INSERT INTO initialform(applicant_ilname,applicant_ifname,applicant_imname,isingle,imarried,iwidow,iwidower,imale,ifemale,initial_age,ibMonth,idateDay,ibYear,ibPlace,aiPurpose)”。“VALUES('$ applicant_ilname',' $ applicant_ifname','$ applicant_imname','$ isingle','$ imarried','$ iwidow','$ iwidower','$ imale','$ ifemale','$ initial_age','$ ibMonth',' $ idateDay','$ ibYear','$ ibPlace','$ ibPlace','$ aiPurpose')“; \t \t $ myData = mysqli_query($ conn,$ sql); } 这是你的意思是把执行查询 – Mark

+0

@Mark:...这只是一个字符串,可能准备发送到数据库。但是,字符串本身不会自动发送到数据库。其他与数据库相关的功能是将该字符串传递给数据库所必需的。请参阅[简化示例](https://www.w3schools.com/PhP/func_mysqli_query.asp)使用此答案中显示的函数进行数据库连接和一些示例查询。 –