0

运行此代码时出现以下错误:

解析错误:第 43 行 /Applications/XAMPP/...results.php 中的语法错误、意外的 ','、期待 ')'

第 43 行对应于下面的查询行。

这是我的代码。这些变量与来自问卷页面的表单输入相关。$source_of_fund_1并且 $source_of_fund_1与单选按钮表单输入有关。其他变量与文本字段/区域有关。我正在对单选按钮变量和!empty文本字段/区域使用 isset 验证。

<?php

$source_of_fund_1 = $_POST['source_of_fund_1'];
$source_of_fund_2 = $_POST['source_of_fund_2'];
$repayment_date = $_POST['repayment_date'];
$do_differently = $_POST['do_differently'];

require_once 'connect.inc.php';

$query = "INSERT INTO tablename 
            (source_of_fund_1, source_of_fund_2, repayment_date, do_differently)
            VALUES 
            ('$source_of_fund_1', '$source_of_fund_2', '$repayment_date',  '$do_differently')";

$result = @mysqli_query($link, $query);

if (($result) && !empty($repayment_date, $do_differently) 
        && isset($source_of_fund_1, $source_of_fund_2)) {
    echo 'Thank you for your submission.';
} else {
    echo 'We were unable to process your information.'.mysqli_error($link).'Please ensure all required fields were filled out.';
}

mysqli_close($link);

?>

任何帮助将不胜感激!谢谢!

4

2 回答 2

3

你的问题是空电话。它不接受多个参数:

!empty($repayment_date, $do_differently)

应该:

!empty($repayment_date) && !empty($do_differently)
于 2013-07-26T18:26:11.177 回答
0

我认为,当前的问题是,因为您使用empty的是多个参数 - 与 不同isset,它只需要一个。

不过,还有其他几个问题。

  1. 不要压制任何错误@- 如果出现问题,您想知道它,以便您可以适当地处理它。

  2. 您将 $_POST 中的内容直接传递到您的 SQL 中,而不进行完整性检查。这是不安全的。至少你应该使用mysqli_real_escape_string - 但是如果你使用 mysqli,为什么不把它变成一个准备好的语句,然后绑定变量呢?这要安全得多。

于 2013-07-26T18:28:28.940 回答