好吧,所以我试图在行内插入动态数据。这很可能不是最好的办法,但在将我的头撞在墙上几个小时后,我仍然不明白为什么$insert
字符串不会被mysql_query
查询。即使当我echo
它,并复制回应的查询它的工作原理,但查询变量不。不能在MySQL查询中插入字符串变量
$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号线
大约还张贴回显的字符串是什么?你的代码中没有'mysql_query'。 – Alexander 2012-04-29 10:31:38
“INSERT INTO druga(id,podaci,d,ra)VALUES('d','d','d','d')”查询是下一行:) P.S.错误是您的SQL语法有错误; ('d','d','d','d')“ '在第1行 – 2012-04-29 10:33:31
**不要将未经过滤的用户输入传递给SQL **。 'mysql_'函数已被弃用,您应该使用'mysqli_'或'PDO'来代替,并使用绑定变量将用户输入传递给查询。 (另外,我实际上并没有在你发布的代码中看到任何'mysql_query'的调用。) – DCoder 2012-04-29 10:34:29