[英]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.