![]() |
1
66beta 2016-06-16 09:59:11 +08:00
val_dump 打印$result 自己看
|
![]() |
2
jswh 2016-06-16 10:00:42 +08:00
出错了吧, mysql_query 里也没见 connect
|
![]() |
3
alex321 2016-06-16 10:03:42 +08:00
$result 没结果。。参见官方手册: http://php.net/manual/en/function.mysql-query.php 。
然后,换到 mysqli 吧。。。 |
![]() |
4
lyp111332 OP |
![]() |
5
JiShuTui 2016-06-16 10:08:23 +08:00
mysql_arrray 第一个参数必须是资源 resource 类型,结果你给了布尔 boolean 类型
所以 $result 是布尔类型,而且可以推测出是 FALSE ,也就是说 mysql_query($sql) 返回 FALSE 了, sql 语句没有正确执行 |
![]() |
6
JiShuTui 2016-06-16 10:10:01 +08:00
你把 $sql 打印出来看看拼出来的 sql 语句是啥
|
![]() |
8
lyp111332 OP @JiShuTui $sql= "select * from admin where username='{$username}' and password='{$password}'"
|
![]() |
9
wesley 2016-06-16 10:29:20 +08:00
1. 你的 mysql 连接在哪里?
2. mysql_*系列函数在 php7 中已经移除 3. mysql_query 还少个参数 |
10
raincious 2016-06-16 10:29:30 +08:00
> 噢,那请问下如何将布尔 boolean 类型改为资源 resource 类型
噗。 $result=mysql_query($sql); if (!$result) { return false; } |
![]() |
11
lyp111332 OP @wesley mysql 连接 con = mysql_connect("localhost","root","root");
if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("emp", $con); mysql_set_charset(utf8); 我现在用的是 php5.4 |
12
raincious 2016-06-16 12:02:55 +08:00
@lyp111332
你应该更仔细的检查一下边际情况。 `mysql_select_db`,`mysql_set_charset`这两个函数都会在错误的时候返回 false ,你需要检查它们的执行结果,而不是盲目的假定他们执行了而跳过检查。 建议你还是用一个数据库操作类来处理与 MySQL 的交互,比如用 http://medoo.in ,而不要自己手动去做。 |
13
Jakesoft 2016-06-16 12:28:41 +08:00
总对用 mysql_query 函数持鄙夷的眼光,我这是什么心态?
|
![]() |
15
touch 2016-06-16 17:24:28 +08:00
赶紧换 PDO 吧
|
![]() |
16
leetao94 2016-06-16 17:27:39 +08:00
为啥不换 PDO
|
![]() |
17
Sunyanzi 2016-06-16 18:34:16 +08:00 ![]() 只有我觉得 LZ 的问题整个都很奇怪吗 ... mysql 扩展根本就没有 mysql_arrray 这么个函数 ...
语句报错和错误代码说的应该都是 mysql_fetch_array 的事 ... 我想不通为什么复制都能复制错 ... 楼上都在说楼主得到这个错误可能的原因 ... 而我根本不打算解释这个 ... 因为说对了也没意义 ... 一直以来我都在各种时间各种地点反复不停的重申不要用 mysql 系列的函数 ... 看来还是收效甚微 ... 现在 2016 年都过去一半了我居然还是能看到这么连数据库的新人 ... 略可悲 ... 说回正事 ... 如果你只是想连数据库的话 ... 把你现在所有跟数据库有关的代码都删了换成下面的 ... ![]() 这代码我专门为你写的 ... 我故意没贴文本而是贴的图 ... 你需要照着我写的重新自己手打一遍 ... 代码不长 ... 我简化了各种东西只留下核心部分 ... 你也过过脑子 ... 别总是复制粘贴吃现成的 ... 第四行到第七行的四个类常量是配置 ... 需要按你的环境改 ... 其他保持不动就可以 ... 这是教学类的代码 ... 并不适合生产 ... 不够优化而且 PDO->query 和错误详情什么的我也没写 ... 总之先学会走再想办法跑起来 ... 等你习惯 prepare / execute 之后再自己来优化我这个例子就好 ... 使用方法在下面象征性的给你写了几个 ... 虽然不强求但最好养成大小写和使用 backtick 的习惯 ... ![]() 大体就是这样 ... 你有什么问题再问吧 ... 以及赶紧把过时的教程扔了 ... 实在太误人子弟 ... |
![]() |
18
ragnaroks 2016-06-16 20:47:40 +08:00
没有框架的话,建议立刻使用 PDO.
|
![]() |
19
eoo 2016-06-16 22:44:35 +08:00 via Android
mysqli pdo 按自己需要你选一个
|
![]() |
21
Sunyanzi 2016-06-17 00:02:00 +08:00
@Jakesoft 类不是一定要实例化成对象才能用的 ... 我例子里的这个 database 类就是个静态类 ...
因为准备让 LZ 手抄代码才没写 abstract 上去 ... 毕竟这例子讲的是数据库操作而不是面向对象 ... 另外针对楼上诸多只留下一句「用 PDO 」的回复我再补一句 ... PDO 和 MySQLi 不是解决方案 ... 虽然我例子里也用了 PDO 但更重要的是我用了 PreparedStatement ... 这才是我要突出的重点 ... 不要觉得用 PDO 就没事了 ... 如果你保持这个用户输入直接进 SQL 的习惯 ... 谁也救不了你 ... |
![]() |
24
cxbig 2016-06-17 07:59:29 +08:00
换 PDO+1
不要浪费时间探讨被淘汰的东西 |
![]() |
26
lyp111332 OP @Sunyanzi 我是看慕课网的视频在学的。= = 这个方法过时了 那请问下该去哪里学习才能学习到不过时的方法。。
|
![]() |
29
Sunyanzi 2016-06-17 13:13:44 +08:00
|