我有一個包含列person和person_initials的表。點擊提交時,我想將輸入框中的名稱插入名稱表中的人員列中,其中首字母等於初始定義的名稱。在這種情況下,表中只有一行包含person_initial列中的「I」。 請參閱下面的代碼。我確定準備好的聲明中必須存在基本的語法錯誤,但我看不到它。無知的道歉。使用預準備語句時出現非對象錯誤
的index.php:
<html>
<body>
<form method="post">
Insert: <input type="text" name="q" value="Tim"/>
<input type="submit" value="Submit">
</form>
<?php
if (isset($_POST['q'])) {
$test_name = $_POST['q'];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "personnames";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$people = 'I';
$stmt = $conn->prepare("INSERT INTO names (person) VALUE=(?) where
person_initial=(?)");
$stmt->bind_param("ss",$test_name,$people);
$stmt->execute();
$stmt->close();
$conn->close();
}
?>
</body>
</html>
INSERT沒有一個'where'條款。 INSERT ON DUPLICATE的作用與INSERT SELECT一樣http://dev.mysql.com/doc/refman/5.6/en/insert.html。編輯:和史蒂夫所述的更新。 http://dev.mysql.com/doc/refman/5.6/en/insert-select.html --- http://dev.mysql.com/doc/refman/5.6/en/insert-on-duplicate。 html –
聽起來像你正在嘗試做一個SQL UPDATE不是一個插入 – Steve
*「當提交被點擊時,我想**輸入框中的姓名**插入人列」* - 有趣的是,這不是你在接受的答案中說了什麼*「當然是更新而不是插入 - 我覺得很傻」* - 史蒂夫一直都是對的,無論是在他的評論中,還是在他的回答如下。 ***更新***在哪裏起作用? –