PHP和Mysql错误“;您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册;
我正试图为我的家庭自动化脚本编写一个小日志,但后来出现了以下错误: 您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以获取第2行“”附近要使用的正确语法 我的SQL是:PHP和Mysql错误“;您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册;,php,mysql,Php,Mysql,我正试图为我的家庭自动化脚本编写一个小日志,但后来出现了以下错误: 您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以获取第2行“”附近要使用的正确语法 我的SQL是: INSERT INTO logsa (timeb, msg, actionb) VALUES ('12-05-2018 02:29:38pm', 'Succesfully send a trigger to https://maker.ifttt.com/trigger/test/w
INSERT INTO
logsa (timeb, msg, actionb)
VALUES
('12-05-2018 02:29:38pm',
'Succesfully send a trigger to https://maker.ifttt.com/trigger/test/with/key/xxxxxxxxxxxxxxxxxxxxxxxx With name test',
'https://maker.ifttt.com/trigger/test/with/key/xxxxxxxxxxxxxxxxxxxxxxxx'
我的代码是:
$logmsg = ("Succesfully send a trigger to " . $row["actiona"] . " With name " . $row["namea"]);
date_default_timezone_set("Europe/Stockholm");
$date = date("d-m-Y");
$time = date("h:i:sa");
$fulldate = ($date . " " . $time);
$actiona = $row["actiona"];
$sql = "INSERT INTO logsa (timeb, msg, actionb)
VALUES ('$fulldate', '$logmsg', '$actiona'";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$logmsg=(“成功地向名为“$row[“namea”]”的“$row[“actiona”]”发送触发器);
日期默认时区设置(“欧洲/斯德哥尔摩”);
$date=日期(“d-m-Y”);
$time=日期(“h:i:sa”);
$fulldate=($date.“$time);
$actiona=$row[“actiona”];
$sql=“插入日志(timeb、msg、actionb)
值(“$fulldate”、“$logmsg”、“$actiona”;
if($conn->query($sql)==TRUE){
echo“新记录创建成功”;
}否则{
echo“Error:”.$sql.“
”$conn->Error;
}
更改timeb
数据值$fulldate
以使用如下有效的日期时间格式
$fulldate = date('Y-m-d H:i:s');
$logmsg = ("Succesfully send a trigger to " .
$row["actiona"] .
" With name " .
$row["namea"]);
date_default_timezone_set("Europe/Stockholm");
$fulldate = date('Y-m-d H:i:s');
$actiona = $row["actiona"];
$sql = "INSERT INTO logsa (timeb, msg, actionb) VALUES (?,?,?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('sss', $fulldate, $logmsg, $actiona );
$result = $stmt->execute();
if ($result) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
MySQL和mariaDB希望DATETIME列以非常特定的格式存储,而您的格式无效
您还应该使用准备好的和参数化的查询来避免类似这样的SQL注入攻击
$fulldate = date('Y-m-d H:i:s');
$logmsg = ("Succesfully send a trigger to " .
$row["actiona"] .
" With name " .
$row["namea"]);
date_default_timezone_set("Europe/Stockholm");
$fulldate = date('Y-m-d H:i:s');
$actiona = $row["actiona"];
$sql = "INSERT INTO logsa (timeb, msg, actionb) VALUES (?,?,?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('sss', $fulldate, $logmsg, $actiona );
$result = $stmt->execute();
if ($result) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$logmsg=(“成功向发送触发器”。
$row[“actiona”]。
“有名字”。
$row[“namea”]);
日期默认时区设置(“欧洲/斯德哥尔摩”);
$fulldate=日期('Y-m-d H:i:s');
$actiona=$row[“actiona”];
$sql=“插入logsa(timeb、msg、actionb)值(?,,?)”;
$stmt=$conn->prepare($sql);
$stmt->bind_param('sss',$fulldate,$logmsg,$actiona);
$result=$stmt->execute();
如果($结果){
echo“新记录创建成功”;
}否则{
echo“Error:”.$sql.“
”$conn->Error;
}
您没有在查询中关闭括号(可能只是问题的复制粘贴错误)这是mariaDB中的一个有效日期时间吗?你的脚本是开放的,甚至可以用在MYSQLI\uucode>或PDO
API的谢谢你,詹姆斯,我只是没有注意到。括号没有正确关闭。没问题。谢谢大家的帮助。