$ conn-> prepare保持返回false

时间:2015-06-16 05:30:02

标签: php mysql mysqli

$ conn是我之前用来获取信息的数据库连接,因此它可以工作。准备是假的,我不知道为什么。

$updateWeight = "insert into $username (weight, date) values (?,?)";
if($stmt = $conn->prepare($updateWeight))
{
    $stmt->bind_param("is",$weight,$date);
    $stmt->execute();
    die("Added ". $weight . " " . $date);
}
else
{
    die( "$updateWeight with $weight and $date error 1");
}

这将返回“插入测试(重量,日期)值(?,?)150和2015/06/16错误1”。

据我所知,一切都很好

mysql> select * from testing;
+----+--------+------------+
| id | weight | date       |
+----+--------+------------+
|  1 |    200 | 2015/06/10 |
+----+--------+------------+
1 row in set (0.01 sec)

我确定这个错误是轻微而愚蠢的,但我似乎无法找到它。

我将命令复制并粘贴到mysql中,并在替换变量

后起作用
mysql> insert into testing (weight, date) values (150,"2015/06/15"); 
Query OK, 1 row affected (0.02 sec)

2 个答案:

答案 0 :(得分:0)

注意:

您的查询使用reserved word - DATE。你可以做的是绕过这个是使用反引号(`)。

$updateWeight = "INSERT INTO `$username` (`weight`, `date`) VALUES (?,?)";

如果它没有解决您的问题,要确定错误原因,请执行error reporting

将其放入else()条件:

printf("Errormessage: %s\n", $conn->error);

答案 1 :(得分:0)

我通过将$ conn-> close();然后重新创建$ conn,因为我之前使用过它