我一直在绞尽脑汁想弄清楚我在这里做错了什么。我正在上数据库课程,但并没有真正教过 PHP。我们刚刚获得了要包含在最终项目中的代码片段。该示例有效,但我无法让我的工作来挽救我的生命。我决定将表格精简到一个字段。这是 HTML 表单片段:
<form method="post" action="add.php">
<table width="100%" border="0" cellspacing="3">
<tr>
<td>Artist Name</td>
</tr>
<tr>
<td><input name="addArtistTextField" type="text" size="30" maxlength="30" /></td>
</tr>
<tr>
<td><input type="submit" /></td>
</tr>
</table>
</form>
这是 PHP 文件 (add.php)
<?php
//Turn on error reporting
ini_set('display_errors', 'On');
//Connects to the database
$mysqli = new mysqli("[*****]","[*****]","[*****]","[*****]");
if(!$mysqli || $mysqli->connect_errno){
echo "Connection error " . $mysqli->connect_errno . " " . $mysqli->connect_error;
}
if(!($stmt = $mysqli->prepare("INSERT INTO mytunes_artists (artist_name) VALUES (?)"))){
echo "Prepare failed: " . $stmt->errno . " " . $stmt->error;
}
if(!($stmt->bind_param($_POST['addArtistTextField']))){ // THIS IS LINE 15 GIVING ERROR
echo "Bind failed: " . $stmt->errno . " " . $stmt->error;
}
if(!$stmt->execute()){
echo "Execute failed: " . $stmt->errno . " " . $stmt->error;
} else {
echo "Added " . $stmt->affected_rows . " rows to mytunes_artists.";
}
?>
我只想在我的表中添加一个艺术家姓名,该表有 2 个字段,艺术家 ID 和艺术家姓名。当我尝试添加名称时,出现以下错误:
警告:第 15 行 /nfs/stak/students/b/brownste/public_html/add.php 中 mysqli_stmt::bind_param() 的参数计数错误绑定失败:0 执行失败:2031 未为准备好的语句中的参数提供数据
我究竟做错了什么?当我不了解 PHP 时,很难调试。我已经用谷歌搜索并尝试了各种各样的东西,但没有任何效果。应该注意的是,我的导师在绑定语句中有“ssii”,但是这也给我带来了错误。不知道它是干什么用的。