0

该程序中的所有内容都可以正常工作,除非我尝试将变量插入到我的数据库中。该过程没有将变量 ($q, $w, $e) 传输到数据库,而是失败了。请注意,如果我将变量更改为整数或字符串,则该过程会成功。请你帮助我好吗?谢谢

<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>
4

5 回答 5

1

试试这个:

$query = mysql_query("INSERT INTO a5637490_test.test (1, 2, 3, 4) VALUES ('$q', 14, '$w', '$e')");

请注意: mysql_不推荐使用扩展,并且这种方式的代码容易受到SQL 注入的影响,请改用PDO或准备好的语句。

于 2013-03-06T06:00:28.077 回答
0

您的字符串变量未正确转义。你需要像这样引用它们

$query = mysql_query("INSERT INTO a5637490_test.test (1, 2, 3, 4) VALUES ('$q', 14, '$w', '$e')"); 
于 2013-03-06T05:59:30.463 回答
0
$query = mysql_query("INSERT INTO a5637490_test.test (1, 2, 3, 4) VALUES ($q, 14, $w, $e)");

你必须使用双引号。单引号不允许直接在字符串中注入变量。

于 2013-03-06T06:00:28.760 回答
0

试试这个 :

$query = mysql_query("INSERT INTO a5637490_test.test (1, 2, 3, 4) VALUES ('".$q."', 14, '".$w."', '".$e."')"); mysql_close($con);
于 2013-03-06T06:00:56.483 回答
0

您需要使用双引号

$query = mysql_query("INSERT INTO a5637490_test.test (1, 2, 3, 4) VALUES ($q, 14, $w, $e)");
于 2013-03-06T06:01:10.073 回答