我对这个mysqli准备的语句有很多麻烦,我无法弄清楚问题是什么。我已经做了大量的故障排除,所以首先我只向您展示代码(如您所见,它目前只是在本地工作(:
$link = mysqli_connect("localhost", "root", "", "dbName");
if($stmt = $link->prepare("INSERT INTO created_memes (created_meme_fileName, created_meme_title, created_meme_likes, created_meme_datePosted) VALUES (?, ?, ?, ?)")){
$stmt->bind_param('sssd', $fileName, $title, $likes, $datePosted);
$title = $_POST["memeTitle"];
$likes = 0;
$dataPosted = date("Y-m-d H:i:s");
$stmt->execute();
printf($stmt->affected_rows);
echo "Link established; query unsuccessful.";
$stmt->close();
} else {
echo "Link unsuccessful.";
}
简单介绍一下:
$fileName变量在代码的前面定义,所以这不是问题所在。即使是这样,我也尝试用其余变量重新定义它,但我仍然受到 -1 行的影响。
我尝试将所有变量设置为静态字符串,以防万一它们出现问题,但它仍然不起作用。
我已经五次检查了连接信息,表名和列名;它们都是正确的。
我已经尝试过将其作为您现在看到的 if 语句,也没有 if 语句。仍然不起作用。
正如您现在看到的,我已经在定义变量之前bind_param尝试过,并且在定义变量之后也尝试过,希望这可能很重要。它没有。还是没用。
在这一点上,我已经撕掉了所有的头发,仍然没有找到问题所在。任何帮助将不胜感激!
从文档中:
-1 indicates that the query returned an error.
尝试echo $stmt->error;
看看出了什么问题
我冒昧地猜测这是因为您按名称指定了 4 个要插入的字段,然后提供了要插入的 5 条数据。