我對PHP很陌生,嘗試使用PDO而不是mysqli。但是,當我單擊「提交」時,我無法將firstname和lastname的值存入sql數據庫。我錯過了什麼?不會從PDO提交數據
<!DOCTYPE HTML>
<?php
$server = 'localhost';
$user = 'xxxx';
$pass = 'xxxxx';
$db = 'xxxxxx';
try {
$con = new PDO("mysql:host=$server;dbname=$db",$user,$pass);
}
catch(PDOException $e) {
echo $e->getMessage();
}
?>
<html>
<form name="Contact form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
First name: <input type="text" name="firstname"><br />
Last name: <input type="text" name="lastname"><br />
<input type="submit" value="Submit this!" name="submit">
</form>
</html>
<?php
if(isset($_POST['submit'])) {
$sql = $con->query("INSERT INTO names (fname,lname) VALUES (:$_POST[firstname],:$_POST[lastname])");
}
?>
<?php $con = null; ?>
假設我正在讀你的php ..因爲你沒有使用參數化值,你的sql容易受到注入攻擊。 – Daedalus
':$ _ POST [firstname]'對我來說看起來很奇怪。冒號......是否應該在那裏。我總是參數化我的價值觀。 – Kubee
@Kubee:不,它不應該在那裏。 「正確的」(但從安全的角度來看,可怕的)寫作方式是省略冒號。 –