首页 >后端开发 >php教程 >读取MySQL表中数据出错

读取MySQL表中数据出错

WBOY
WBOY原创
2016-06-23 14:28:31869浏览

mysql select php

下面是一段工作正常的代码
/* 注入基本信息,A_I自动生成meta_id */$query1 = "INSERT INTO libr_metacode (meta_isbn, meta_cip) VALUES ('$isbn', '$cip')";$result1 = mysqli_query($dbc,$query1)  or die('无法写入基本编码,错误信息:' . mysqli_error($dbc)); /* 获取meta_id进行后续写入 */$query = "SELECT * FROM libr_metacode WHERE meta_isbn='$isbn'";$result = mysqli_query($dbc, $query);$row = mysqli_fetch_array($result);$ida = $row['meta_id'];echo '获得本书藏书库系统元编码' . $ida . '<br />'; /* 题名 */$query2 = "INSERT INTO libr_title (meta_id, title, subtitle, series) VALUES ('$ida', '$title', '$subtitle', '$series')";$result2 = mysqli_query($dbc,$query2)  or die('无法写入题名信息,错误:' . mysqli_error($dbc));


做的事情是:

1. 以表单获得的ISBN号(国际标准书号)、CIP号,在meta_code表中插入行 系统元编码 ISBN号 CIP号
2. 利用唯一的ISBN号,在meta_code表中查询图书获得的系统元编码
3. 利用系统元编码在多个表中进行插入

因为ISBN有13位不适合做主键(吧?),所以就这样做了,但是在读取其他数据的时候几乎一模一样的查询代码就出错了。

/* 获取meta_id进行后续写入 */$query = "SELECT * FROM '$ui_b' WHERE '$ui_c'='$ui_a'";$result = mysqli_query($dbc, $query);$row = mysqli_fetch_array($result);$ida = $row['meta_id'];


报错:mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given.

尽管知道$result应该返回的是一个resource id但是在第一段代码里fetch_array()明明就可以啊,为什么第二段代码里的fetch_array()一定要逻辑值呢?

还有,求问如何才能“echo”出$result的值?

回复讨论(解决方案)

补充:系统元编码是自动递增A_I的,$ui_a输入的是字段值,$ui_b输入的是表名,$ui_c输入的是列名。

若 $ui_b 是表名,$ui_c 是字段名
则应写作
$query = "SELECT * FROM $ui_b WHERE $ui_c='$ui_a'";

若 $ui_b 是表名,$ui_c 是字段名
则应写作
$query = "SELECT * FROM $ui_b WHERE $ui_c='$ui_a'";
我去……是这样啊……谢谢版主!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn