表的設計在我的數據庫如下,PDO返回相同的結果,無論使用INT或不
AID INT(10) AUTO_INCREMENT
ID INT(20)
DATA VARCHAR(50)
Engine = MyISAM
我做一個形式,以POST數據到執行的SQL查詢的功能。
<form method="post" action="test.php" >
<input type="text" name="id" /><BR/>
<input type="text" name="val1" /><BR/>
<input type="text" name="val2" /><BR/>
<input type="text" name="val3" /><BR/>
<input type="submit" name= "t" value="submit"/>
</form>
陣列和回聲結果:
if (isset($_POST['t'])){
foreach(array($_POST) as $data) {
echo send($data);
}
};
這裏是功能:
當使用 'ID' 字段 '1' POST形式function send($data){
//MySQL connected
$do = $sql->prepare("SELECT id, data FROM test WHERE id =?");
$do->bindValue(1, $data['id'], PDO::PARAM_INT);
$do -> execute() ;
if ($do -> rowCount()=== 1){
$getData = $do -> fetch();
return $getData['data'];
}
}
,該函數返回從表格中提取'數據'。
但是,當使用'1aaxxacac'POST表單時,函數返回相同的結果。
我已經嘗試過使用:
$do -> execute(array(':id'=>$data['id]));
來代替以前的一個,但仍然有同樣的問題。 如果我在MySQL中將ID字段從INT更改爲CHAR或VARCHAR,則情況已解決。
真誠地希望你們能幫我弄明白。
謝謝!
http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion – Musa
@Musa是的,我應該使用is_numeric?但如何將其與我的foreach整合?我發現一些網站認爲is_numeric表現不佳。但是,謝謝 – user3740833
從您的書籤中刪除這些網站或 - 更好 - 禁止它們在您的防火牆上 –