我正在尝试制作一个非常基本的Android应用程序,可以连接到mysql服务器并进行查询。我做了第一页,需要主机,用户,名称和密码。然后我使用POST方法将这些输入传递给php脚本(称为conn.php)。如果建立了mysql连接,则弹出窗口显示“Success”,否则显示错误。现在,我被困在这里。现在我希望一旦我提供了主机,用户名和密码并建立了连接,我想在另一个PHP脚本中使用相同的连接,这将在连接上进行查询。
这是我的conn.php
prod
这是我的Android任务
<?php
$host=$_POST["host"];
$user=$_POST["user"];
$pass=$_POST["pass"];
$sql=new mysqli($host,$user,$pass);
if($sql->connect_error)
echo "Failed: ".$sql->connect_error;
else{
echo "Success";
}
?>
如果我做错了,那可能是另一种方式?
答案 0 :(得分:1)
好的,如果你只想要一个连接,请使用singleton类(参见单例模式)。
按如下方式定义连接类,
DBConnection.php
class DBConnection{
protected static $db;
private function __construct() {
try {
$host:"myhost";
$user:"myuser";
$pass:"mypass";
self::$db = $sql=new mysqli($host,$user,$pass);
}
catch (Exception $e) {
//..........
}
}
public static function getInstance() {
if (!self::$db) {
new DBConnection();
}
return self::$db;
}
public function __destruct() {
$db=NULL;
}
}
注意:在PHP中,创建此类的Object,并在创建此类的对象时将从POST获得的值传递给此类。
你在PHP文件中做了类似的事情
的 conn.php 强>
include "DBConnection.php";
//$host=$_POST["host"];
//$user=$_POST["user"];
//$pass=$_POST["pass"];
//$db = new DBConnection($host,$user,$pass);
$db = new DBConnection();
$connection = $db->getInstance();