Mysql | php创建数据库和数据表的一个例子
搭建php环境,使用的是wampserver 3.1.1,选用apache 2.4.27和php 7.0.23和mysql5.7.19
下载链接:wampserver3.1.0_64.exe 密码:91kh
wampserver3.1.0_86 密码:yepu
安装好之后,默认C:wampwww路径是php的工作路径,在浏览器直接输入localhost,解析是该路径下的index.php文件。
如果想输入自定义的路径,比如,我在C:wampwww里面新建一个文件夹,名为:bendi.mila.net。我想在浏览器输入bendi.mila.net,浏览器就会解析我的C:wampwwwendi.mila.net路径下的index.php文件。
那么,还需要:
(1)C:wampinapacheapache2.4.27confextrahttpd-vhosts.conf文件里面添加:
<VirtualHost *:80>
ServerName bendi.mila.net
ServerAlias localhost
DocumentRoot "${INSTALL_DIR}/www/bendi.mila.net"
<Directory "${INSTALL_DIR}/www/bendi.mila.net">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
(2)C:WindowsSystem32driversetchosts文件里面添加:
127.0.0.1 bendi.mila.net
这样,在浏览器直接输入bendi.mila.net,就会显示bendi.mila.net里面的东西了。
下面,在bendi.mila.net里面新建一个index.php文件,实现添加数据库,添加数据表的功能:
<?php $dbhost="localhost:3306"; //mysql服务器主机地址 $dbuser="root"; //mysql用户名 $dbpass="123456"; //mysql用户密码 $dbname="runoob"; //数据库名字 //用到的SQL语句 $sq0 = "create database if not exists ".$dbname.";"; $sql = "CREATE TABLE if not exists runoob_tbl( ". "runoob_id INT NOT NULL AUTO_INCREMENT, ". "runoob_title VARCHAR(100) NOT NULL, ". "runoob_author VARCHAR(40) NOT NULL, ". "submission_date DATE, ". "PRIMARY KEY ( runoob_id ))ENGINE=InnoDB DEFAULT CHARSET=utf8; "; $sql_drop_db = "drop database ".$dbname; $sql_drop_table = "drop table runoob_tbl;"; $sql_insert_value = "insert into runoob_tbl ". "(runoob_id,runoob_title,runoob_author,submission_date)". "values". "("1","学习php","xiaoxian","2018-01-02"),". "("2","学习java","xiaoxian","2018-01-02"),". "("3","学习python","xiaoxian","2018-01-02")"; $sql_select = "select * from runoob_tbl"; /**************************************************************************************/ //连接mysql $conn=mysqli_connect($dbhost,$dbuser,$dbpass); if(!$conn){ die("连接失败:".mysqli_error($conn)); } echo "连接成功<br />"; /**************************************************************************************/ //删除runoob数据库 $redropdb=mysqli_query($conn,$sql_drop_db); if(!$redropdb) echo("删除runoob数据库失败: " . mysqli_error($conn)."<br />"); else echo "删除runoob数据库成功runoob数据库<br />"; /**************************************************************************************/ //创建runoob数据库 //$recreatedb=mysql_create_db($dbname,$conn);//错误 //$recreatedb=mysql_query($sq0,$conn);//错误 $recreatedb=mysqli_query($conn,$sq0); if(!$recreatedb) die("数据库创建失败: " . mysqli_error($conn)); else echo $dbname."数据库创建成功<br />"; /**************************************************************************************/ //选择runoob数据库 //参数一:规定要使用的mysql连接。 //参数二:规定要使用的默认数据库。 mysqli_select_db( $conn, "RUNOOB" ); /**************************************************************************************/ //删除runoob_tb1数据表 $retval = mysqli_query( $conn, $sql_drop_table ); if(! $retval ) echo("删除runoob_tb1数据表失败: " . mysqli_error($conn)."<br />"); else echo "删除runoob_tb1数据表成功<br />"; /**************************************************************************************/ //创建runoob_tbl数据表 $retval = mysqli_query( $conn, $sql ); if(! $retval ) echo("数据表创建失败: " . mysqli_error($conn)."<br />"); else echo "创建runoob_tbl数据表成功<br />"; /**************************************************************************************/ //插入数据 mysqli_query($conn,"set names utf8");//对于含有中文的数据输入,应该添加这一句。 $retval = mysqli_query( $conn, $sql_insert_value ); if(! $retval ) echo("插入数据失败: " . mysqli_error($conn)."<br />"); else echo "插入数据成功<br />"; /**************************************************************************************/ //获得数据 $retval = mysqli_query($conn,$sql_select); if(!$retval) echo("无法读取数据:".mysqli_error($conn)); echo "<h2>菜鸟教程 mysqli_fetch_array测试<h2>"; echo "<table border="1">"; echo "<tr><td>教程ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>"; //mysqli_fetch_array从结果集中取得一行作为关联数组,或数字数组,或二者兼有,返回根据从结果 //集取得的行生成的数组,如果没有更多行则返回false。 //也可以使用mysqli_fetch_assoc(),该函数从结果集中取得一行作为关联数组。返回根据从结果集取 //得的行生成的关联数组,如果没有更多行则返回false。 //所以,可以用mysqli_fetch_assoc($retval)代替mysqli_fetch_array($retval,MYSQLI_ASSOC) while($row=mysqli_fetch_array($retval,MYSQLI_ASSOC)){ echo "<tr><td>{$row["runoob_id"]}</td><td>{$row["runoob_title"]}</td><td>{$row["runoob_author"]}</td><td>{$row["submission_date"]}</td></tr>"; } echo "</table>"; mysqli_free_result($retval);//释放内存 //也可以使用常量 MYSQLI_NUM 作为 PHP mysqli_fetch_array() 函数的第二个参数,返回数字数组。 $retval = mysqli_query($conn,$sql_select); if(!$retval) echo("无法读取数据:".mysqli_error($conn)); echo "<h2>菜鸟教程 mysqli_fetch_array测试<h2>"; echo "<table border="1">"; echo "<tr><td>教程ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>"; while($row=mysqli_fetch_array($retval,MYSQLI_NUM)){ echo "<tr><td>{$row[0]}</td><td>{$row[1]}</td><td>{$row[2]}</td><td>{$row[3]}</td></tr>"; } echo "</table>"; mysqli_free_result($retval);//释放内存 //关闭数据库连接 mysqli_close($conn); ?>
浏览器输入:bendi.mila.net,获得该脚本的运行结果。
mysql_create_db()函数创建数据库出现错误:猜想$conn是mysqli获取的,而不是mysql,网上查出mysql_create_db()已经弃用,最好用mysql_query()来提交一条create database dbname的语句来代替。后采用mysqli_query()函数才可行。
- 上一篇:没有了
- 下一篇:没有了