SQL查询中的数组值?

时间:2011-09-23 01:42:22

标签: php sql arrays

$sql = mysql_query("INSERT INTO `users` VALUES(
        '',
        '$form['name']',
        '$form['saddress']',
        '$form['apt']',
        '$form['zip']',
        '$form['homephone']',
        '$form['cellphone']',
        '$form['email']',
        '$form['    ']',
        '$form['city']',
        '$form['state']',
        '$form['country']',
        '$salt','$hash',
        '$form['username']'
    )");

我将如何做到这一点?它给了我Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

3 个答案:

答案 0 :(得分:2)

尝试在变量周围使用大括号,如下所示:

..
'{$form['name']}',
'{$form['saddress']}',
..

答案 1 :(得分:1)

$form['x']删除单引号或执行以下操作:

mysql_query("INSERT INTO x VALUES(
  '" . mysql_real_escape_string($form['x']) . "',
  '" . mysql_real_escape_string($form['x']) . "'
");

请注意,单引号内有双引号。

答案 2 :(得分:0)

这是一个典型的问题,源于PHP解析变量字符串的能力,这可能会让人感到困惑。我更喜欢将变量保留在字符串之外,并在需要时连接。

这就是我要做的事情:

$sql = mysql_query("INSERT INTO `users` VALUES('" .
    implode("','", array(
        "",
        $form['name'],
        $form['saddress'],
        $form['apt'],
        $form['zip'],
        $form['homephone'],
        $form['cellphone'],
        $form['email'],
        $form['    '],
        $form['city'],
        $form['state'],
        $form['country'],
        $salt,
        $hash,
        $form['username']
    )) . "')";
);