2016-06-12 54 views
1

我使用HTML,并使用array_key_exists当按下按钮来调用从PHP功能函数创建一个按钮,但它不会做任何事情 executeBoundSQL距离PHP我要让我的html按钮的工作用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); 

} } 

回答

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的主要碰撞行为仍然很有趣:

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

+0

感谢,这是如此的帮助,我只是PHP –

+0

的初学者刚问另外一个问题,如果你能帮助它会感激http://stackoverflow.com/questions/37800431/displaying-all-records- IN-A-语句PHP –

相关问题