除非我尝试将变量插入数据库,否则此程序中的所有内容都有效。该过程失败,而不是将变量($ q,$ w,$ e)传输到数据库。请注意,如果我将变量更改为整数或字符串,则过程成功。请你帮助我好吗? THX
<html>
<body>
<?php
$q = $_POST['q'];
$w = $_POST['w'];
$e = $_POST['e'];
// bring variables from browser works
$con=mysql_connect("mysql5.000webhost.com","*****","*****","*****");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
// connection to server works
$query = mysql_query('INSERT INTO `a5637490_test`.`test` (`1`, `2`, `3`, `4`) VALUES ($q, 14, $w, $e)');
mysql_close($con);
echo 'success';
?>
</body>
</html>
答案 0 :(得分:1)
请改为尝试:
$query = mysql_query("INSERT INTO a5637490_test.test (1, 2, 3, 4) VALUES ('$q', 14, '$w', '$e')");
请注意: mysql_
扩展程序已弃用,而且您的代码易受SQL injection攻击,使用PDO或准备好的语句。
答案 1 :(得分:0)
您的字符串变量未正确转义。你需要引用它们像
$query = mysql_query("INSERT INTO a5637490_test.test (1, 2, 3, 4) VALUES ('$q', 14, '$w', '$e')");
答案 2 :(得分:0)
$query = mysql_query("INSERT INTO a5637490_test.test (1, 2, 3, 4) VALUES ($q, 14, $w, $e)");
你必须使用双引号。单引号不允许直接在字符串中注入变量。
答案 3 :(得分:0)
试试这个:
$query = mysql_query("INSERT INTO a5637490_test.test (1, 2, 3, 4) VALUES ('".$q."', 14, '".$w."', '".$e."')"); mysql_close($con);
答案 4 :(得分:0)
您需要使用 双引号
$query = mysql_query("INSERT INTO a5637490_test.test (1, 2, 3, 4) VALUES ($q, 14, $w, $e)");