前言
自己要做一个Android App,涉及到服务器端的用户数据管理,而网络上的的资源往往是只讲一个方面。所以自己每完成一段工作,会将开发过程记录下来,并供大家参考,相关文章放在专栏
如果你遇到了什么问题,或者有好的建议欢迎在评论区留言大家一起交流。
--------------------------------------------------------------------------------------------------------------------------------
目录
创建表,并写入一条数据
首页=>数据库工具打开=>SQL_Front
如果出现登录界面:
用这里的用户名和密码登录即可。
进入后看到我们新建的数据库,点击进入。
右键=>新建=>表格
填写信息:填写表明和类型。
点击这里添加字段
添加username字段:
同样的操作,添加password字段
点击确定后查看我们建的表,如下所示:
点击对应的字段,进行输入,创建我们的第一条数据。
创建php文件
双击物理路径,进入我们的站点根目录
然后创建一个文件夹,我这里创建一个test
用VScode打开该文件夹,新建一个test.php文件,你用其他编辑器也可以,记事本也可以。
为了测试我们在php文件中,加入以下代码:
<?php
echo "测试环境没问题";
?>
在浏览器地址栏输入
localhost/test/test.php
如果是404Not Found参见另一篇文章:
本地站点突然出现404Not Found_勇敢di牛牛的博客-CSDN博客
接下来就可以写我们的代码了。
PHP对数据库操作:
连接数据库:
对数据库的操作有两种方式:MySQLi && PDO
我是该用 MySQLi ,还是 PDO?
如果你需要一个简短的回答,即 "你习惯哪个就用哪个"。
MySQLi 和 PDO 有它们自己的优势:
PDO 应用在 12 种不同数据库中, MySQLi 只针对 MySQL 数据库。
所以,如果你的项目需要在多种数据库中切换,建议使用 PDO ,这样你只需要修改连接字符串和部分查询语句即可。 使用 MySQLi, 如果不同数据库,你需要重新编写所有代码,包括查询。
两者都是面向对象, 但 MySQLi 还提供了 API 接口。
两者都支持预处理语句。 预处理语句可以防止 SQL 注入,对于 web 项目的安全性是非常重要的。
因为我的数据库是MySQL所以我这里用的是mysqli:
<?php
header('content-type:text/html;charset=utf-8');
define('servername','localhost');//主机名
define('username', '1111');//连接数据库的用户名
define('password','123456');//连接数据库密码
define('dbname', '1111');//数据库名称
//echo "<br>" .username ."<br>". password ."<br>" .dbname ;
// 创建连接
$conn = new mysqli(servername, username, password, dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}else{
echo "连接成功";
}
?>
运行上面代码,其中的用户名,数据库名,数据库名,用户密码,都可以在小皮客户端查看(我这里用的是我们在上面创建的数据库);
*验证前一定记得ctrl + s 保存代码,以及浏览器刷新当前界面!!!!
连接成功后会print 连接成功。
链接失败则会打印相应的错误。比如我将密码输错:
看到这里如果你对语法有些看不懂的话建议阅读另一篇文章,或许对你有帮助:
【php + MySQL + Android】php学习中的关键问题整理(持续补充)_勇敢di牛牛的博客-CSDN博客
查询数据库
连接成功后我们就可以查询数据库中的数据了,
<?php
header('content-type:text/html;charset=utf-8');
define('servername','localhost');//主机名
define('username', '1111');//连接数据库的用户名
define('password','111111');//连接数据库密码
define('dbname', '1111');//数据库名称
//echo "<br>" .username ."<br>". password ."<br>" .dbname ;
// 创建连接
$conn = new mysqli(servername, username, password, dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}else{
echo "连接成功";
}
$sql = "SELECT * FROM `test` ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - username: " . $row["usernam"]. "password " . $row["password"]. "<br>";
}
} else {
echo "0 结果";
}
$conn->close();
?>
这里的$sql = "SELECT * FROM `test` ";就是我们需要执行的SQL语句。这里的test是我们前面建表的表的名字。意思是在我们的表里面查找所有的内容。上面的这种写法是面向对象式的写法,新建了一个mysqli对象,$conn->query($sql)就是调用对象mysqli里的方法query。
这里我们假设的是结果有多条。也可以通过mysqli_fetch_assoc($result)只打印一条数据。
因为我们数据库里的数据如图所示,只有一条,所以这里只有一条数据。
给数据库中增加数据
<?php
header('content-type:text/html;charset=utf-8');
define('servername','localhost');//主机名
define('username', '1111');//连接数据库的用户名
define('password','111111');//连接数据库密码
define('dbname', '1111');//数据库名称
//echo "<br>" .username ."<br>". password ."<br>" .dbname ;
// 创建连接
$conn = new mysqli(servername, username, password, dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
$sql="INSERT INTO `test`(`usernam`,`password` )values('迪丽热妈','123456789')";
if ($conn->query($sql) === TRUE) {
echo "数据提交成功";
}else{
die("提交失败: " . $conn->error);
}
$conn->close();
?>
*注意我这里的username 少一个e,因为我的数据库中的字段名也少了一个e,这里要写你自己的字段名。
我们刷新数据库,发现数据添加到了上面。
再次使用上面的代码进行查询:
也是阔以查到滴!
删除和修改的方法,与上面一样,只需要修改,SQl语句即可。需要注意的是
die("提交失败: " . $conn->error);这如果你的SQL语句有问题,这句代码可以返回对应的报错,所以在每次操作后加入这行代码,有助于进行错误分析以及调试。