在尝试将我的PHP应用程序转换为SaaS时,获取“警告:mysql_fetch_row()期望参数1是资源,布尔值在中给出”
我正在尝试将我的PHP应用程序转换为支持多租户SaaS。我看到了这篇文章,并修改了现有的config.php文件,如下所示在尝试将我的PHP应用程序转换为SaaS时,获取“警告:mysql_fetch_row()期望参数1是资源,布尔值在中给出”,php,mysql,saas,multi-tenant,Php,Mysql,Saas,Multi Tenant,我正在尝试将我的PHP应用程序转换为支持多租户SaaS。我看到了这篇文章,并修改了现有的config.php文件,如下所示 <?php $data = explode('.',$_SERVER['SERVER_NAME']); if (!empty($data[0])) { $subdomain = $data[0]; } define('SITE_DB_SERVER','localhost'); define('SITE_DB_PORT','3306'); define('
<?php
$data = explode('.',$_SERVER['SERVER_NAME']);
if (!empty($data[0])) {
$subdomain = $data[0];
}
define('SITE_DB_SERVER','localhost');
define('SITE_DB_PORT','3306');
define('SITE_DB_USERNAME','root');
define('SITE_DB_PASSWORD','mysql');
define('SITE_DB_NAME','central');
$sitedbh = mysql_connect(SITE_DB_SERVER.':'.SITE_DB_PORT,SITE_DB_USERNAME,SITE_DB_PASSWORD);
$sitemysql = mysql_query('select id,dbusername,dbpassword from central.client where subdomain = '.$subdomain.'');
$appdata = mysql_fetch_row($sitemysql);
if (empty($appdata['id'])) {
echo "Oops! Sorry, we are unable to find you! Please email us at support@mydummyapp.com";
exit();
}
define('DB_HOSTNAME', '127.0.0.1');
define('DB_PORT', '3306');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'mysql');
define('DB_DATABASE', 'myapp_'.$appdata['id']);
define('LAST_ACTIVITY_TIMEOUT', '3600');
define('SESSION_RENEG_TIMEOUT', '600');
define('USE_DATABASE_FOR_SESSIONS', 'true');
define('CSP_ENABLED', 'false');
date_default_timezone_set('America/Chicago');
?>
当尝试运行我的应用程序时,我面临警告:mysql_fetch_row期望参数1是resource,布尔值在第19行的/myapp_path/config.php中给出。请参考截图。在过去的10个小时里,我尝试了一些可用的解决方案,但没有任何效果。请帮我把它安装好并运行起来
正如约翰·康德所说。。。查询错误,请更改以下内容:
$sitemysql = mysql_query('select id,dbusername,dbpassword from central.client where subdomain = '.$subdomain.'');
为此:
$sitemysql = mysql_query("select id,dbusername,dbpassword from central.client where subdomain = '".$subdomain."')";
请注意查询中字符串值周围的新引号您的查询失败。请看您的引用。@johncode您能帮我重新表述正确的查询吗?请看本页的侧栏。在使用mysql_查询时,您也应该非常小心,尽量避免使用它。如果可能的话,mysql_查询已被弃用,将来将从PHP中删除。一个现代的替代品。如果你是PHP新手,像这样的指南可以帮助你解释最佳实践。@tadman+1推荐我PDO。就像魅力一样,我的工作和PDO很好。是的,我是PHP新手,谢谢你给我推荐那些好文章。你成就了我的一天..正如你所说,我已将查询更改为$sitemysql=mysql_queryselect id,dbusername,dbpassword from central.client,其中subdomain='.$subdomain';我现在没有看到任何警告,但仍然得到错误,这是在我的上述代码如果条件。尝试回显$sitemysql和$appdata['id']$sitemysql正在打印资源id 6,$appdata['id']显示空字符串。请替换$appdata=mysql\u fetch\u row$sitemysql;$appdata=mysql\u fetch\u assoc$sitemsql;您的结果只是编号的数组,如$appdata[0]是您的id文件$appdata[1]是您的用户名等。为什么右括号是字符串的一部分?看起来还是错的。哎呀。。。这是一个打字错误