如何将PHP中的字符串数据插入MySql表中


How to insert the string data from PHP into MySql table

如何将这些来自PHP的字符串数据插入MySQL表中,我可以运行代码,但不能插入数据库。

php代码:

<?php
//mysql connection
$connect_error = 'Sorry, the database server is down. Please try again later.';
mysql_connect('xxxxxxxxx.com', 'xxxxxxx', 'xxxxxxxxx') or die($connect_error);
mysql_select_db('checkbox_test') or die($connect_error);
if (isset($_POST['submit'])) {
    if (isset($_POST['subject'])) {
        $strsubject = implode(",", ($_POST['subject']));
    } else {
        $strsubject = "";
    }
    echo $strsubject;
}
mysql_query("INSERT INTO levels (level_1, level_2, level_3, level_4, level_5, level_6) VALUES ($strsubject");
?>

html:

<form action="" method="post" name="form_subject" id="form_subject">
    <input type="checkbox" name="subject[]" value="level_1"><label>Level 1</label><p>    
    <input type="checkbox" name="subject[]" value="level_2"></label>Level 2</label><p>  
    <input type="checkbox" name="subject[]" value="level_3"></label>Level 3</label><p>   
    <input type="checkbox" name="subject[]" value="level_4"><label>Level 4</label><p>    
    <input type="checkbox" name="subject[]" value="level_5"></label>Level 5</label><p>       
    <input type="checkbox" name="subject[]" value="level_6"></label>Level 6</label><p>
    <input type="submit" action= "" name="submit"  value="Submit" />
</form>

数据库表有7列,其中1列表示id(设置为A_I),其余列为每个级别的名称。我是网络开发的新手,谢谢大家

INSERT语句中缺少一个右括号,正好位于$strsubject之后和":之前

mysql_query("INSERT INTO levels (level_1, level_2, level_3, level_4, level_5, level_6) 
                    VALUES ($strsubject")

这可能不是唯一的问题。

  1. 在PHP中,就像在JS、C++和Java中一样,不会简单地将一个变量放入另一个变量中。使用右连接字符.

$what      = "lazr!";
$variable1 = "firin " . $what;
$sql = "....SET column1='" . $data1 . "')";

  1. 不要使用mysql_*函数。

  2. 在PDO中使用准备好的声明:http://php.net/manual/de/pdo.prepare.php

<?php
/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
  1. $strsubject = implode(",", ($_POST['subject']));应为:

$strsubject = "'" . implode("', '", ($_POST['subject'])) . "'";