PHP如何向MySQL数据库插入和操作数据
你是不是经常遇到写了SQL语句却没有任何反应,结果插入失败呢?其实,光写SQL那是远远不够的,关键是要执行它!比如你写了$sql="insert into table_name(...) values(...)",一定要紧跟一个执行函数,比如mysql_query($sql);才行。代码示范:
$query = mysql_query($sql);
if($query){
echo '数据插入成功。';
}else{
echo '数据插入失败。';
}
这一步绝对不能省,否则数据库根本感受不到你的请求,可惜了!还有,要用mysqli或者PDO替代过时的mysql扩展,更安全靠谱。顺便说一下,如果你插入一条数据后再插入失败,别忘了检查是不是缓存问题,或者数据库设置不对,甚至请求路径里加个随机参数防止缓存,如reg.php?t="+Math.random(),这样能防止数据提交重影,避免困扰。

PHP操作数据库图片上传、数据修改及计算新列方法
-
说到PHP处理图片上传和数据库存储,基本套路是:图片本体存服务器,数据库只存图片路径,通常用varchar类型存相对路径。然后读取时,从数据库拉出路径放进数组,再在页面显示,超方便。
-
关于图片上传,你可以写个
uploadPhoto($file)函数,设置好上传目录,接收文件参数,保存图片,处理错误啥的,整套流程相当实用。 -
想在数据库中查询、删除、添加数据?用mysqli的写法很直观:
$conn = new MySQLi("db_host","db_username","db_password");
$conn->select_db("db_name");
// 查询
$sql = "select * from table_name";
// 添加
$sql = 'insert into table_name(column1,column2) values("value1","value2")';
// 修改
$sql = 'update table_name set column1="value1" where id=xx';
// 删除
$sql = "delete from table_name where id=xx";
以上记得用$conn->query($sql)来执行哦。
- 还有,假如你想对数据库某表的两列做除法运算,然后把结果生成新的一列,步骤如下:
- 先用
ALTER TABLE给表新增一个列:
ALTER TABLE 表名 ADD COLUMN 新列名 VARCHAR(30);
- 然后用
UPDATE语句给新列赋值:
UPDATE 表名 SET 新列名 = 列名1 / 列名2;
这样,你的数据库也能算点小数学啦~
- 最后写个数据插入的例子吧:
$query = "INSERT INTO grade (name,email,point,regdate) VALUES ('李三','yc60.com@gmail.com', 100, NOW())";
mysql_query($query) or die('添加数据出错:'.mysql_error());
修改数据的示例:
$query = "UPDATE grade SET name='小可爱' WHERE id=6";
mysql_query($query) or die('修改数据出错:'.mysql_error());
是不是超级简单?千万别忘了or die()避免无声失败,真是个实用小技巧呢。

相关问题解答
- PHP中为什么写了SQL语句插入数据却没成功执行?
哎呀,这种情况超级常见!你写的SQL语句其实只是字符串,关键是要用函数去执行它,比如mysql_query()或者$conn->query(),如果你光写SQL根本没运行,数据自然不会进数据库啦!另外,还要留意数据库连接是否成功,权限是否充足。不像想象中那么神秘,只要多留意代码中的执行步骤,保证SQL真正发给数据库,基本就没啥问题啦。
- 如何用PHP把图片上传并存储到数据库中?
说实话,直接存图片二进制到数据库比较少见,通常是把图片上传到服务器的文件夹,然后存图片路径到数据库。这样数据库轻松,读写也快。你可以写个函数来接收上传的文件,创建文件夹,存文件,再把相对路径用varchar存进去。页面显示的时候从数据库拿路径放到<img>标签超easy。关键是,记得做点文件格式和大小的校验,别让服务器崩溃哦。
- 在PHP中怎么给数据库新增列并计算赋值?
超简单,先用ALTER TABLE加个新列,比如字符类型的,这个是存计算结果的容器。然后用UPDATE语句用已有两个字段做计算,比如除法,把结果写到新列里。举个例子:
ALTER TABLE your_table ADD COLUMN new_col VARCHAR(30);
UPDATE your_table SET new_col = col1 / col2;
就这么贼easy!不同数据库稍微有点差异,需要注意字段类型和除数不为零啥的。试试运行看看,搞不定再问哈~
- 提交数据时如何避免缓存导致不能插入多条记录?
这个问题超级扎心,特别是AJAX请求或者浏览器缓存时。简单方法就是在请求URL后面加个随机参数,比如时间戳或者随机数,比如reg.php?t=时间戳,保证每次请求地址不同,浏览器才不会用缓存。很简单又有效哇。还有注意服务器和数据库也不要设置重复主键或唯一索引阻止插入,这样你数据才能顺顺利利插入多条记录,放心大胆搞吧!
新增评论