我有一个表列
log_id
作为主键自动递增。
我是否需要在insert into语句中指定它?
尝试将值插入数据库时出现下一个错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(log_session,log_ip,log_vrijeme,log_model) my_log VALUES ('270043ae1526e4' at line 1 INSERT INTO (log_session,log_ip,log_vrijeme,log_model) my_log VALUES ('270043ae1526e44967889b4382ff69fd','93.142.54.135','2018-11-23 14:06:15','1402')
我的代码是:
<?php
$_SESSION['compare_hash'] = "270043ae1526e44967889b4382ff69fd";
$log_session = $_SESSION['compare_hash'];
$log_ip = $_SERVER['REMOTE_ADDR'];
$log_vrijeme = date("Y-m-d H:i:s");
$log_model = "1402";
$con = mysqli_connect("localhost","user","password","databse");
$sql = "
INSERT INTO (log_session,log_ip,log_vrijeme,log_model) my_log
VALUES ('$log_session','$log_ip','$log_vrijeme','$log_model')
";
$rez = mysqli_query($con, $sql) or die(mysqli_error($con)."<br>$sql");
mysqli_close($con);
?>
表结构:
Field Type Null Key Default Extra
log_id int(11) NO PRI NULL auto_increment
log_session varchar(42) NO MUL NULL
log_ip varchar(15) NO NULL
log_vrijeme datetime NO MUL NULL
log_model int(11) NO MUL NULL
谢谢你的帮助。
1条答案
按热度按时间hi3rlvi21#
你应该把
my_log
刚好在…之后INSERT INTO
:但是,您的代码有几个缺点,稍后我将描述它们。
1不要将未转义的变量传递到查询中
除非你别无选择。使用
mysqli_real_escape_string($con, $your_var)
防止sql注入和使用pdo会使它变得更好。2在以后的编辑过程中,使用herdeoc语法确保查询的一致性
这样即使你的某个人
"
在查询中,它仍将按预期工作。三。如果下面没有任何内容,请省略php文件末尾的结束标记
这将防止意外错误的发生。