gpt4 book ai didi

php - 通过 HTML 表单插入数据的 SQL Near 错误

转载 作者:行者123 更新时间:2023-11-29 07:06:09 27 4
gpt4 key购买 nike

我一直在尝试将一些数据插入事件页面的数据库中。我有一个 html 表单和一个单独的脚本,如下所示,提交似乎通过了 ename idimgsrc 值,但什么也没有过去了。如果再多的话,我会收到一条 You have an error in your SQL Syntax;检查与您的 MySQL 服务器版本相对应的手册,了解在 'when、descr、positions) 附近使用的正确语法 VALUES (test, 1 ,www.vzdc.org, 2017-1-20 23:59:00' at line 1我已经做了一些研究,但也许这只是我的一个奇怪的错误?我对 mysql 相当陌生,我希望得到一些帮助!谢谢,代码如下。

<!-- HTML form -->
<form id="newevent" action="insertevent.php" method="post">
<p>Event Name:</p><input name="ename" type="text" width="100">
<p>ID:</p><input name="id" type="text" size="5">
<p>Banner Link:</p><input name="imgsrc" type="text" size="50">
<p>Description</p><input name="descr" type="text" height="1000px" >
<p>Date / Time (yyyy-mm-dd HH:MM:SS):</p><input name="when" type="text">
<p>Positions (ONE per line)</p><textarea name="positions" form="newevent" rows="10" cols="50"></textarea><br>
<input value="Add Event" type="submit">
</form>

/* PHP script on insertevent.php */
<?php
$link = mysqli_connect("localhost", "root", "xxx", "xxx");

// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}

// Escape user inputs for security
$ename = mysqli_real_escape_string($link, $_POST['ename']);
$id = mysqli_real_escape_string($link, $_POST['id']);
$imgsrc = mysqli_real_escape_string($link, $_POST['imgsrc']);
$when = mysqli_real_escape_string($link, $_POST['when']);
$descr = mysqli_real_escape_string($link, $_POST['descr']);
$positions = mysqli_real_escape_string($link, $_POST['positions']);

// attempt insert query execution
$sql = "INSERT INTO events (ename, id, imgsrc, when, descr, positions) VALUES (`$ename`, $id , `$imgsrc`, `$when`, `$descr`, `$positions`)";
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else{
echo "ERROR: Could not execute $sql. " . mysqli_error($link);
}

// close connection
mysqli_close($link);
?>

最佳答案

不要使用反引号将变量绑定(bind)到查询,而是使用单引号。您可以对表名和列名使用反引号:

INSERT INTO `events` (`ename`, `id`, `imgsrc`, `when`, `descr`, `positions`) 
VALUES ('$ename', '$id', '$imgsrc', '$when', '$descr', '$positions')

WHEN也是一个保留字,最好改个名字。

由于您已经在使用 mysqli_* API,请检查 prepared statement

关于php - 通过 HTML 表单插入数据的 SQL Near 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41540793/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com