我想让我的HTML按钮与PHP一起工作

时间:2016-06-12 22:37:58

标签: php html

我使用html创建了一个按钮,并在按下按钮时使用array_key_exists从php调用函数函数但它没有做任何事情 executeBoundSQL只是php的一个函数

<form method="POST" action="docAppts.php">
<!--refresh page when submit-->

<p><input type="text" name="did" size="6">
<!--define two variables to pass the value-->
<input type="submit" value="search" name="searchh"></p>
</form>



if ($db_conn) {
$result=executePlainSQL(" select * from doctor");
printResult($result);
if (array_key_exists('searchh', $_POST)) {
    echo"show me";
    $tuple=array(
         ":bind1"=> $_POST['did']
    );
    $alltuples=array(
         $tuple
    );
    echo "<br> print table <br>";
//  executePlainSQL("Drop table :tablname");
    //echo':tablename';
    $result=executeBoundSQL("select * from doctor where  did=:bind1", $alltuples);

    printResult1($result);
    // Create new table...
    //echo "<br> creating new table <br>";
    //executePlainSQL("create table tab1 (nid number, name varchar2(30), primary key (nid))");
    OCICommit($db_conn);

} }

1 个答案:

答案 0 :(得分:0)

您正在使用此嵌套数组:

$alltuples=array(
     $tuple
);

我不确定您使用的数据库API,但我愿意打赌它不会以递归方式搜索绑定参数。

annotated recursive array diagram

由于您只有一个绑定,因此将$tuple传递给它就足够了。

$result=executeBoundSQL("select * from doctor where  did=:bind1", $tuple);

如果您需要绑定更多参数,只需将它们添加到同一个数组中:

$tuple=array(
     ":bind1"=> $_POST['did'],
     ":bind2"=> $_POST['did2'],
     ":bind3"=> $_POST['did3']
);

或者您可以使用array_merge

$tuple=array(
     ":bind1"=> $_POST['did']
);

$tuple2=array(
     ":bind2"=> $_POST['did2']
);

$alltuples=array_merge(
     $tuple,$tuple2
);

所有绑定参数都应唯一命名,但注意与array_merge发生关键冲突时的行为仍然很有趣:

  

如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个键。但是,如果数组包含数字键,则后面的值不会覆盖原始值,但会附加。