0

我创建了一个名为“表”的新数据库表。现在我正在尝试使用以下代码将数据写入字段:

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

$F1 = $_POST['F1'];
$F2 = $_POST['F2'];
$F3 = $_POST['F3'];
$F4 = $_POST['F4'];

$sql_data_array = array('F1' => zen_db_prepare_input($_POST['F1']),
'F2' => zen_db_prepare_input($_POST['F2']));

zen_db_perform('table', $sql_data_array);

$db->Execute("insert into requests (F1, F2, F3, F4) values ('".$F1."', '"$F2."', '".$F3."', '".$F4. "')");
}

当我按下提交按钮时,我得到空白页。这意味着我的代码有问题。错误在哪里?请帮帮我。

4

1 回答 1

0

有几件事:

  1. 不要只获取发布的值;对它们进行一些清理以确保您不会被黑客入侵。

    $F1 = zen_db_prepare_input(zen_sanitize_string($_POST['F1'])); 
    
  2. “table”对于一张桌子来说真的不是一个好名字。它可能是一个保留字,所以你真的想叫它(比如说)“fawad_table”。
    如果你这样做:

    zen_db_perform('fawad_table', $sql_data_array);
    

    仅当您不在 configure.php 文件中使用前缀时,它才会起作用。如果你这样做会失败。更好的是创造

    ./includes/extra_datafiles/special_tables.php
    

    它做了类似的事情

    define('TABLE_FAWAD', DB_PREFIX . 'fawad_table');
    

    那么你可以使用

    zen_db_perform(TABLE_FAWAD, $sql_data_array);
    

and it will work with or without a prefix.

于 2011-02-20T18:03:56.290 回答