好的,所以我试图在一行中插入一个动态数据。这很可能不是最好的方法,但是在将我的头撞到墙上几个小时后,我仍然无法理解为什么$insert
字符串不会被mysql_query
查询。即使我echo
它并将其回显到查询它的工作原理,但查询变量却没有。
$insert = '"INSERT INTO '.$_SESSION['tabsel'].' (';
echo "<form method='post' action=''>";
while($row = mysql_fetch_array($result))
{
echo "Enter ".$row[0]." <input type='text' name='data[]'>";
echo "<br>";
$insert .= $row[0].",";
$_SESSION['insert'] = $insert;
}
echo "<input type='submit' value='Add'>";
echo "</form>";
if(isset($_POST['data']))
{
$insert = $_SESSION['insert'];
$strlength = strlen($insert);
$insert = substr($insert,0,($strlength-1));
$insert .= " VALUES (";
foreach($_POST['data'] as $value)
{
$insert .= "'$value',";
$_SESSION['insert'] = $insert;
}
}
$insert = $_SESSION['insert'];
$strlength = strlen($insert);
$insert = substr($insert,0,($strlength-1));
$insert .= ')"';
$_SESSION['insert'] = $insert;
$insert = $_SESSION['insert'];
echo $insert."<br>";
$seldb = mysql_select_db($_SESSION['sel']);
if($seldb && (!empty($_POST['data'])) && (isset($_SESSION['sel'])) && (isset($_SESSION['tabsel'])))
{
$insert = $_SESSION['insert'];
echo $insert;
$query = mysql_query($insert, $con);
if($query)
{
echo "Record succesfully added!";
}
else
{
echo mysql_error();
}
}
给出错误:
您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以便在第1行
"INSERT INTO mtable (id,nr,d,ra) VALUES ('d','d','d','d')"
附近使用正确的语法
答案 0 :(得分:1)
看一下echo'd字符串
"INSERT INTO druga (id,podaci,d,ra) VALUES ('d','d','d','d')"
您需要删除在SQL查询中放置的前导和尾随引号字符。修改这两行代码:
删除引号字符。
$insert='INSERT INTO '.$_SESSION['tabsel'].' (';
而不是
$insert='"INSERT INTO '.$_SESSION['tabsel'].' (';
删除尾随引号字符。
$insert.=')';
而不是
$insert.=')"';