繁体   English   中英

将数据插入MySQL数据库

[英]Inserting data into MySQL database

我正在努力将数据从表单插入数据库。 我设法建立了连接(至少没有收到任何错误),但是在插入值时遇到错误,我不确定表的行/列是否应位于'',我已经看到一些带有引号和不带引号的示例,以及变量是否也应带有引号的示例。

连接到数据库(connect.php):

<?php
define("DB_SERVER","localhost");
define("DB_USER","root");
define("DB_PASS","");
define("DB_NAME","Bookshop");

$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
    if(!$connection){
        die("error: unable to connect to database " . mysql_error());
    }
    $select_db = mysql_select_db(DB_NAME, $connection);
    if(!$select_db){
        die("error: unable to connect to database " . mysql_error());
    }
?>   

包括连接:

<?php
    include ("connect.php"); // connects to database
?>

并从表单中插入数据:

$query = "INSERT INTO customer 
                (CUST_ID, CUST_NAME, CUST_SURNAME, HOUSE_NO, STREET, POSTCODE, PHONE_NO, EMAIL, OGIN, PASSWORD)
                VALUES 
                ('10101', '$forename', '$surname', '$address1', '$address2', '$postcode', 
                '$phone_no', '$email', '$login', '$password')"; 
mysql_query($query, $connection);

    if(!mysql_query($query, $connection)){
        echo "Error!!!!";
    }

mysql_close($connection);   

看来您是新手。.从mysqli或pdo扩展名开始。 请访问W3schools.com ,以获取有关示例的详细说明。 以下是如何使用mysqli连接并在数据库中插入行的示例

 <?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

并为您查询。

我不确定该表的行/列是否应位于'内,我已经看到了一些带引号和不带引号的示例,以及变量是否也应带有引号。

就插入查询而言,1)。用反斜杠结束列名。 2)。用单引号引起来的变量没有错

要进一步了解单引号和双引号的用法,

单引号不查找变量,而双引号则查找变量

情况1 :

    $value = 10;
    $sql = 'SELECT * FROM `table_name` WHERE `column_name` = $value';
    echo $sql;

输出是

SELECT * FROM `table_name` WHERE `column_name` = $value

在这里,如果看到单引号,则不会在其中查找变量。 无论单引号内有什么,都将其视为字符串并按原样返回。

情况2:

    $value = 10;
    $sql = "SELECT * FROM `table_name` WHERE `column_name` = $value";
    echo $sql;

输出是

 SELECT * FROM `table_name` WHERE `column_name` = 10

由于查询位于双引号内,因此将读取该变量。 但被视为int。

情况3:

    $value = 10;
    $sql = "SELECT * FROM `table_name` WHERE `column_name` = '$value'";
    echo $sql; 

输出是

SELECT * FROM `table_name` WHERE `column_name` = '10'

由于查询位于双引号内,因此将读取该变量。 但视为字符串,因为它用单引号引起来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM