我使用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);
} }
答案 0 :(得分:0)
您正在使用此嵌套数组:
$alltuples=array(
$tuple
);
我不确定您使用的数据库API,但我愿意打赌它不会以递归方式搜索绑定参数。
由于您只有一个绑定,因此将$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
发生关键冲突时的行为仍然很有趣:
如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个键。但是,如果数组包含数字键,则后面的值不会覆盖原始值,但会附加。