我正在嘗試制作一個使用 index.php 和 connection.php 將 index.php 輸入發布到我的資料庫表的表單。此外,我試圖使用 bind_param 以數字格式指定除電話號碼 (puhelinnumero) 以外的所有其他內容為字母格式,但它給了我這個錯誤:

這是 index.php。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="lomake-container">
<form action="connection.php" method="POST">
<h2>Ilmoittautumis lomake</h2>
<div class="lomake-block">
<label for ="nimi">Etunimi</label>
<input type="text" name="etunimi" id="nimi" placeholder="Etunimi">
</div>
<div class="lomake-block">
<label for ="sukunimi">Sukunimi</label>
<input type="text" name="sukunimi" placeholder="Sukunimi">
</div>
<div class="lomake-block">
<label for="male">Mies</label>
<input type="radio" id="male" name="sukupuoli">
</div>
<div class="lomake-block">
<label for="female">Nainen</label>
<input type="radio" id="female" name="sukupuoli">
</div>
<div class="lomake-block">
<label for="other">Muu</label>
<input type="radio" id="other" name="sukupuoli">
</div>
<div class="lomake-block">
<label for ="s?hk?posti">S?hk?posti</label>
<input type="text" name="s?hk?posti" id="s?hk?posti" placeholder="S?hk?posti">
</div>
<div class="lomake-block">
<label for ="salasana">Salasana</label>
<input type="text" name="salasana" id="salasana" placeholder="Salasana">
</div>
<div>
<label for ="puhelinnumero">Puhelin numero</label>
<input type="text" name="puhelinnumero" id="puhelinnumero" placeholder="Puhelin num.">
</div>
<input type="submit" value="L?het?">
</form>
</div>
</body>
</html>
這是connection.php
<?php
$etunimi = $_POST["etunimi"];
$sukunimi = $_POST["sukunimi"];
$sukupuoli = $_POST['sukupuoli'];
$s?hk?posti = $_POST['s?hk?posti'];
$salasana = $_POST['salasana'];
$puhelinnumero = $_POST['puhelinnumero'];
$servername = "localhost";
$username = "root";
$password = '';
$database = 'palvelu';
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}else {
echo "Yhteys onnistui";
$stmt = $conn->prepare("insert into lomake($etunimi, $sukunimi, $sukupuoli, $s?hk?posti, $salasana, $puhelinnumero)
values(?, ?, ?, ?, ?, ?)");
}
$stmt->bind_param("sssssi",$etunimi, $sukunimi, $sukupuoli, $s?hk?posti, $salasana);
echo "onnistui jea";
$stmt->execute();
$stmt->close();
$conn->close();
?>
這是表:

uj5u.com熱心網友回復:
您不能引數化列名,但無論如何我很確定這實際上不是您的意圖,并且您可能對如何構建INSERT查詢略有誤解。您需要指定要插入的列名。?當 MySQL 收到查詢時,您當前嘗試用來代替列名的變數值將通過占位符自動同化到查詢中。
您也忘記將最后一個值放入bind_param命令中。
最后,你的邏輯有一點點缺陷——如果連接失敗,那么你的代碼就會死。不需要else. 如果它沒有死,就繼續。
試試這個:
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Yhteys onnistui";
$stmt = $conn->prepare("insert into lomake(`nimi`, `sukunimi`, `gender`, `email`, `password`, `number`) values(?, ?, ?, ?, ?, ?)");
$stmt->bind_param("sssssi",$etunimi, $sukunimi, $sukupuoli, $s?hk?posti, $salasana, $puhelinnumero);
echo "onnistui jea";
$stmt->execute();
$stmt->close();
$conn->close();
聚苯乙烯
這是 MySQL 檔案參考INSERT:https : //dev.mysql.com/doc/refman/8.0/en/insert.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/358082.html
上一篇:Oracle-從審計表中獲取多個條件的最新時間戳更新行
下一篇:Option(OptimizeForUnknown)和option(Optimizefor(@parameterUnknown))的區別
