调用php变量不起作用

时间:2013-03-06 05:57:41

标签: php mysql

除非我尝试将变量插入数据库,否则此程序中的所有内容都有效。该过程失败,而不是将变量($ 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>

5 个答案:

答案 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)");