数据未使用 XAMPP 存储在 mySQL 数据库中
Posted
技术标签:
【中文标题】数据未使用 XAMPP 存储在 mySQL 数据库中【英文标题】:Data is not getting stored in mySQL database using XAMPP 【发布时间】:2017-12-10 19:10:00 【问题描述】:我已经使用名为 test226333 的 XAMPP 在 mysql 中创建了一个数据库,我正在尝试像这样将数据发送到表中 "http://localhost/write_data.php?value=100"for database and table details screenshot click here
我的php代码是
<?php
$dbusername = "ganesh";
$dbpassword = "varma";
$server = "localhost";
$dbconnect = mysql_connect($server, $dbusername, $dbpassword);
$dbselect = mysql_select_db("test226333",$dbconnect);
$sql = "INSERT INTO test226333.data VALUES ('".$_GET["value"]."')";
mysql_query($sql);
?>
进入链接时没有显示任何内容,并且数据没有存储在数据库中
请帮帮我 提前谢谢..
【问题讨论】:
我们应该如何访问本地主机? :// 请使用PDO
或mysqli
请阅读有关与数据库通信时最基本的错误控制和调试措施是什么。这已经解释了无数次了。
警告:如果您只是学习 PHP,请不要使用mysql_query
接口。它是如此可怕和危险,以至于它在 PHP 7 中被删除。像 PDO is not hard to learn 这样的替代品和像 PHP The Right Way 这样的指南解释了最佳实践。您的用户数据不是properly escaped,有SQL injection bugs,可以被利用。
【参考方案1】:
试试这个:
$servername = "localhost";
$username = "ganesh";
$password = "varma";
$dbname = "test226333";
$mysqli = new mysqli($servername, $username, $password, $dbname);
if ($mysqli->connect_errno)
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
/* Prepared statement, stage 1: prepare */
if (!($stmt = $mysqli->prepare("INSERT INTO <your table name>(col1, col2, col3) VALUES (?, ?, ?)")))
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
/* Prepared statement, stage 2: bind and execute */
if (!$stmt->bind_param("i", $val1))
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
if (!$stmt->bind_param("s", $val2))
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
if (!$stmt->bind_param("i", $val3))
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
if (!$stmt->execute())
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
/* explicit close recommended */
$stmt->close();
【讨论】:
警告:当使用mysqli
时,您应该使用parameterized queries 和bind_param
将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug。 切勿将$_POST
、$_GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。
将其切换为mysqli
不是一个坏主意,但只是在查询中猛击$_GET
数据是非常糟糕的。提供建议时请务必小心谨慎。像这样的代码会被复制粘贴到生产环境中并造成严重的麻烦。以上是关于数据未使用 XAMPP 存储在 mySQL 数据库中的主要内容,如果未能解决你的问题,请参考以下文章
Mysql - 数据库连接 - xampp - 使用 PHP [重复]
MySQL 数据库未启动 - 错误!服务器退出而不更新 PID 文件 - XAMPP OS X