php – MySQL查询返回false值
发布时间:2020-12-13 22:47:41 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试使用数据库表中的数据创建菜单.但我有一点问题.我的查询结果返回false布尔值. 这是我的代码: ?phpclass DataBase{ protected $dbUser; protected $dbPassword; protected $dbHost; protected $dbName; protected $db; function __construct() { $
我正在尝试使用数据库表中的数据创建菜单.但我有一点问题.我的查询结果返回false布尔值.
这是我的代码: <?php class DataBase { protected $dbUser; protected $dbPassword; protected $dbHost; protected $dbName; protected $db; function __construct() { $this->dbUser = 'root'; $this->dbPassword = ''; $this->dbHost = 'localhost'; $this->dbName = 'ecommercemakup'; $this->db = mysqli_connect($this->dbHost,$this->dbUser,$this->dbPassword,$this->dbName) or die('Fatal error!'); } public function getInstance() { return $this->db; } } ?> <?php $db = new DataBase(); $r = mysqli_query($db->getInstance(),"CALL categories()"); if (mysqli_num_rows($r) > 0) { while ($row = mysqli_fetch_array($r,MYSQLI_ASSOC)) { echo '<li> <a href=' . $row['name'] . '.php>'; print_r($row['name']); echo '</a> <ul>'; $id = intval($row['idCategory']); $r1 = mysqli_query($db->getInstance(),"CALL subcategories($id)"); if (mysqli_num_rows($r1) > 0) { while ($row1 = mysqli_fetch_array($r1,MYSQLI_ASSOC)) { echo '<li><a href=' . $row1['name'],'.php>'; print_r($row1['name']); echo '</a></li>'; } } echo '</ul></li>'; } } ?> 第一个查询正确运行,但第二个查询始终返回false. 这两个程序是这样的: DELIMITER @@ DROP PROCEDURE categories @@ CREATE PROCEDURE ecommercemakup.categories() BEGIN SELECT * FROM categories; END @@ DELIMITER ; DELIMITER @@ DROP PROCEDURE subcategories @@ CREATE PROCEDURE ecommercemakup.subcategories (IN id_Category INT) BEGIN SELECT idSubcategory,idCategory,name FROM subcategories WHERE idCategory = id_Category; END @@ DELIMITER ; 类别表包含2个项目:idCategory和name,子类别表包含3个项目:idSubcategory,idCategory和name. 谁能告诉我这里做错了什么? 解决方法
将变量名替换为@id_Category,在名称前缺少@.
在MySQL中,@ variable表示用户定义的变量.你可以定义自己的. SET @a =’test’; 没有@的变量是系统变量,您无法自己定义. 希望能帮助到你 参考 User defined variable System variable (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |