gpt4 book ai didi

php - 数据库php脚本,将数据插入表中

转载 作者:行者123 更新时间:2023-11-29 18:15:41 26 4
gpt4 key购买 nike

我对 php 相当陌生,对于我的数据库类,我们需要使用 php 表单插入数据。我正在使用 MySQL Workbench、MAMP 和 phpmyadmin(如果有帮助的话)。我的问题是,如何让表单与下面附加的 php 脚本交互。如何获取分配给 $value 的标题框中的值、分配给 $value2 的评级等。这是我的服务器中的两个单独的文件,当我转到索引并选择我的 php 脚本时,它返回 500 错误,因此目前不起作用。

我已确保数据库名称以及用户和密码正确。所附图片是我的电影表,其中包含列标题 enter image description here

<?php
define('DB_NAME', 'movie_database');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_HOST', 'localhost:3036');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) {
die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

if (!$db_selected) {
die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}


$value = $_POST['title'];
$value2 = $_POST['rating'];
$value3 = $_POST['Runtime'];
$value4 = $_POST['movie_rating'];
$value5 = $_POST['release_date'];

$sql = "INSERT INTO movies (title, rating, Runtime, movie_rating,
release_date) VALUES ('$value', '$value2', '$value3','$value4','$value5')";
echo "Inserted correctly!"
if (!mysql_query($sql)) {
die('Error: ' . mysql_error());
}

mysql_close();
?>

这只是制作文本框:

<form action="form1.php" method="post"/>
<p>Enter Movie Title: <input type="text" name="title"/></p>
<p>Enter Movie Rating(G,PG,PG-13,R): <input type="text" name="rating"/></p>
<p>Enter Movie Runtime in minutes: <input type="text" name="Runtime"/></p>
<p>Enter IMDB Movie Rating(0-10.0): <input type="text" name="movie_rating"/></p>
<p>Enter Movie Release date(YYYY-MM-DD): <input type="text" name="release_date"/></p>
<input type="submit" value="Submit"/>
</form>

编辑:刚刚发现 MAMP 有错误日志。查看 phperror 日志,显示: PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect() in E:\MAMP\MAMP\htdocs\forms.php:8堆栈跟踪:

0 {主要}

在第 8 行的 E:\MAMP\MAMP\htdocs\forms.php 中抛出

最佳答案

因此,您遇到了语法错误,缺少 ;(现已修复),但仍然存在两个问题:

您的DB_HOST变量设置不正确,它应该是:

define('DB_HOST', '127.0.0.1');

您不需要端口号,并且使用 MAMP 您很可能需要使用本地主机 IP:127.0.0.1

你的第二个问题是你创建插入查询的方式,当你连接值时它应该看起来像这样:

$sql = "INSERT INTO movies (title, rating, Runtime, movie_rating, release_date)
VALUES ('".$value."', '".$value2."', '".$value3."','".$value4."','".$value5."')";

据说 PHP MySQL 自 PHP 5.5.0 起已被弃用

所以尝试使用 PHP MySQLi 如下所示:

<?php
$databaseName = 'movie_database';
$databaseUser = 'root';
$databasePassword = 'root';
$databaseHost = '127.0.0.1';

$conn = new mysqli($databaseHost, $databaseUser, $databasePassword, $databasePassword);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

echo "Connected successfully";

// Note* This is basic sanitizing but you can be more careful with this
$value = mysql_real_escape_string($_POST['title']);
$value2 = mysql_real_escape_string($_POST['rating']);
$value3 = mysql_real_escape_string($_POST['Runtime']);
$value4 = mysql_real_escape_string($_POST['movie_rating']);
$value5 = mysql_real_escape_string($_POST['release_date']);

// Concatenate the $values into the string
$sql = "INSERT INTO movies (title, rating, Runtime, movie_rating, release_date)
VALUES ('".$value."', '".$value2."', '".$value3."','".$value4."','".$value5."')";

if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();

?>

关于php - 数据库php脚本,将数据插入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47049229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com