我的mysql查询在本地主机上运行良好,但它不能像我FTP到服务器那样工作。问题在于动态表选择$tbl_prod.
$branch = $_SESSION['branch']; //value is shukey main_products(yes with space)
$tbl_prod = $branch . "_products"; //for selecting dynamic table from database
$query = mysqli_query($db_connect, "SELECT * FROM `$tbl_prod` ORDER BY `prod_id` DESC LIMIT 5") or exit(mysqli_error());
然而,当我尝试使用name of the table directly
时,它是有效的,但这不是我想要的,因为我希望表是动态选择的。
$query = mysqli_query($db_connect, "SELECT * FROM `shukey main_products` ORDER BY `prod_id` DESC LIMIT 5") or exit(mysqli_error());
我能解决这个问题吗?这是关于mysql版本还是什么?
在运行查询之前尝试添加此项,以查看脚本试图对sql库调用的确切内容:
echo "SELECT * FROM `$tbl_prod` ORDER BY `prod_id` DESC LIMIT 5"
编辑:
另外,删除$tbl_prod周围的"标记",因为您不需要这些标记。
您的问题是在Windows机器上进行开发,而您的服务器是Linux机器。Windows不区分大小写,但Linux是。
当您尝试执行查询时,其中一个表名有大写字母,而另一个没有,则查询将失败。
table
!=Table
是否var_dump($tbl_prod)
可能正在获取一些额外的字符/空格。这样您就可以修剪变量,然后在查询中使用。