我面对这个问题我不知道如何解决它 当我尝试将信息添加到我的数据库时出现此错误
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 第1行附近的“1”
<?php
$con=mysqli_connect('localhost','root','');
$db=mysqli_select_db($con,'healthy_db');
if ($con) {
echo "good ";
}else {
die('error');
}
$sql = mysqli_query($con,"INSERT INTO `healthy_db`.`fitness` (id,workout_date,first_meal,second_meal) values (null,'2/12/2016','sweet','cake')");
if (mysqli_query($con,$sql)){
echo "insert";
} else {
echo "error" .$sql ."<br>". mysqli_error($con);
}
?>
答案 0 :(得分:0)
如果数据库中的id不为null,则可能会出现此错误,取消id及其值,并确保使其自动递增。
答案 1 :(得分:0)
如果id
是主键,则无法将其设置为null
。另一个错误是您使用mysqli_query
两次。请尝试以下.. id
将自动如果是pk
,则递增。
$sql ="INSERT INTO fitness (workout_date,first_meal,second_meal) values ('2016-12-02','sweet','cake')";
if (mysqli_query($con,$sql)){
echo "insert";
} else {
echo "error" .$sql ."<br>". mysqli_error($con);
}
?>
答案 2 :(得分:0)
试试这个:
替换它:
$sql = mysqli_query($con,"INSERT INTO `healthy_db`.`fitness` (id,workout_date,first_meal,second_meal) values (null,'2/12/2016','sweet','cake')");
使用:
$sql = "INSERT INTO `healthy_db`.`fitness` (workout_date,first_meal,second_meal) values ('2/12/2016','sweet','cake')";
答案 3 :(得分:0)
据我所知,您的代码中有两个问题。 $ sql变量已经使用你的连接设置你的查询,所以你不需要在if块中运行查询,其次(假设它可能应该和将来的自动增量id)然后你不需要命名它并尝试填充它。
有几种方法可以解决自动增量部分。
指定的列:(id,col1,col2)VALUES('','data','moredata')或(col1,col2)VALUES('data','moredata') 此类型允许您仅选择需要运行查询数据的列。
未指定列:INSERT INTO表VALUES('','data','moredata') 此类型尝试将数据写入所有列,因此查询中的列计数需要与表中的列计数匹配。
<?php
$con=mysqli_connect('localhost','root','');
$db=mysqli_select_db($con,'healthy_db');
if ($con) {
echo "good ";
} else {
die('error');
}
/*
* I noted something else that may give a syntax error
* column names need encapsulating. backticks are prefered.
* See change i've also changed the code slightly to make it
* easier for you to see whats going on.
*
* Also Incorporating the answer below about the date format
* to make the accepted answer more complete.
*/
$sql = "INSERT INTO `healthy_db`.`fitness` (`workout_date`, `first_meal`, `second_meal`) VALUES ('2016-12-2','sweet','cake')";
$result = mysqli_query($con, $sql);
if ($result){
echo "insert";
} else {
echo "error" .$sql ."<br>". mysqli_error($con);
}
?>