我在这个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在定义变量之前,正如您现在所看到的那样,以及它们之后的定义,希望这可能很重要。它没有。仍然没有工作。
此时我已经撕掉了所有的头发,但仍然没有找到问题。任何帮助都将非常感谢!
答案 0 :(得分:1)
-1 indicates that the query returned an error.
尝试echo $stmt->error;
查看出现了什么问题
我猜测这是因为您按名称指定了4个要插入的字段,然后提供5个要插入的数据。