我在PHPmyAdmin中创建了一个名为" people"有4列,并填充2行数据。我在一个名为" db.php"的文件中使用了Azure的文档中的这段代码。连接到数据库。
db.php中:
$connectstr_dbhost = '';
$connectstr_dbname = '';
$connectstr_dbusername = '';
$connectstr_dbpassword = '';
foreach ($_SERVER as $key => $value) {
if (strpos($key, "MYSQLCONNSTR_localdb") !== 0) {
continue;
}
$connectstr_dbhost = preg_replace("/^.*Data Source=(.+?);.*$/", "\\1", $value);
$connectstr_dbname = preg_replace("/^.*Database=(.+?);.*$/", "\\1", $value);
$connectstr_dbusername = preg_replace("/^.*User Id=(.+?);.*$/", "\\1", $value);
$connectstr_dbpassword = preg_replace("/^.*Password=(.+?)$/", "\\1", $value);
}
$link = mysqli_connect($connectstr_dbhost, $connectstr_dbusername, $connectstr_dbpassword,$connectstr_dbname);
if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
它成功地回应了Success: A proper connection to MySQL was made!...
现在,按照youtube教程,我试图传递我的表的数据并使用这段代码将其转换为json格式:
fetch.php:
include_once('db.php');
$query = "SELECT * FROM `people`";
$res = mysqli_query($link,$query);
if($res !== FALSE)
{
echo "table found";
}
else
{
echo "table not found";
}
$result = array();
while( $row = mysql_fetch_array($res) )
array_push($result, array( 'id' => $row[0],
'firstname' => $row[1],
'lastname' => $row[2],
'address' => $row[3]));
echo json_encode(array("result" => $result));
但这只是回应了table not found
我对SQL和PHP都很陌生。知道什么是错的吗?
答案 0 :(得分:1)
从您的代码判断,看起来您正在使用Azure MySQL In App。默认情况下,Azure在运行时环境通过MYSQLCONNSTR_localdb
变量注入数据库连接信息。它注入变量的数据库名称命名为:localdb
。
所以我想知道你在哪个数据库中创建了people
表?如果您已将people
表放入其他数据库,如下面的屏幕截图:
然后,fetch.php
文件中的代码将回显table not found
;如果你把表放在localdb
数据库中,那么它将回显`table found';
您可以通过Azure门户添加phpMyAdmin扩展,如下面的屏幕截图所示:
然后,您可以通过网址https://{YOUR WEB APP’S NAME}.scm.azurewebsites.net/phpmyadmin/
查看数据库内容,以进入工作台。
此外,您可以参考this link了解有关MySQL应用内如何为Web Apps工作的更多详细信息。
答案 1 :(得分:0)
原来我正在混合使用MySQL和MySQLi。最后一个代码块(将表转换为JSON)使用的是MySQL。我改变了这个并让它发挥作用。