执行sql命令时出现字符串错误

时间:2014-05-03 10:55:14

标签: php sql forms

我想从数据库列表中选择一个数据库并使用它但我收到错误,说数据库不存在。 我的代码是:     选择数据库以使用

<form action = "createtable.php" method = "post">
    <?php
    $query = "SHOW DATABASES";
    $result = mysql_query($query, $connect);
    if(!$result) { echo mysql_error(); var_dump($result);
        var_dump($connect); var_dump($query); }
    while($row = mysql_fetch_array($result)) {
        echo '<input type = "radio" name = "db" value =' . $row[0] . '/>' . $row[0] . "<br>";
    }
    ?>
    <input type = "submit" name = "submit" value = "submit" />
</form>


<?php
if(isset($_POST['submit'])) {
    echo 'submit done';
    $db = $_POST['db'];
    $query = "USE $db";
    $result = mysql_query($query, $connect);
    if(!$result) {
        echo 'no' . mysql_error();
        var_dump($db);
    }
}

var_dump给了我      字符串'imt /'(长度= 4)  所以我知道这是错误。现在的问题是我怎么能逃避这个?

1 个答案:

答案 0 :(得分:0)

我测试了你的代码并且它没有返回错误的结果,但它似乎导致我已经附上了PHP标签并编写单选按钮而没有任何混乱的PHP。所以我深入你的报价,我看到了这个

 while ($row = mysql_fetch_array($result))
{echo '<input type = "radio" name = "db" value =' . $row[0] . '/>' . $row[0] . "<br>";}
?>

将导致

<input type = "radio" name = "db" value = imt/>

因此该值将变为imt/

您应该用引号value ="' . $row[0] . '"/>或更好的

将其括起来

不要弄乱PHP和HTML:)

<?php while ($row = mysql_fetch_array($result)):?>
    <input type = "radio" name = "db" value = "<?=$row[0];?>"/> 
<?php endwhile; ?>