php實戰教程,php網站如何連接到遠程mysql數據庫?
在php中如果要連接遠程數據庫連接方法很簡單,只要把本地連接localhost或127.0.0.1改成指定遠程服務器一IP地址或者直接域名即可。
語法
mysql_connect(servername,username,password);
例子
在下面的例子中,我們在一個變量中 ($con) 存放了在腳本中供稍后使用的連接。如果連接失敗,將執行 "die" 部分:
代碼如下:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
// some code
?>
上面是連接本地數據庫,下面把localhost改成遠程IP即可了
實例 代碼如下:
$conn=mysql_connect('
http://boaer.com'
,'root','123456888');if(!$conn) echo "失敗!";
else echo "成功!";
// 從表中提取信息的sql語句
$sql="SELECT * FROM user where userName='$user_name'";
// 執行sql查詢
$result=mysql_db_query('info', $sql, $conn);
// 獲取查詢結果
$row=mysql_fetch_row($result);
mysql_close();
php中table的意思?
表格的意思,table是前端html混合編譯器使用的混合編碼,現在不常用, 有的框架實例化為對象,如 thinkphp中table標簽填寫對應的操作表
hex2bin?
PHP hex2bin() 函數
實例
把十六進制值轉換為 ASCII 字符:
<?php
echo hex2bin("48656c6c6f20576f726c6421");
?>
以上實例輸出結果:
Hello World!
定義和用法
hex2bin()函數把十六進制值的字符串轉換為 ASCII 字符。
語法
hex2bin( _string_ )
php單例模式該如何實現?
PHP 單例模式的實現
單例設計模式為了解決在一個應用中只有一個實例【比如數據庫實例】,并且禁止clone 復制
在PHP中可以繼承單例模式來使用單例模式的特性,避免每次創建一個類都要創建一個對象
一般Sigleton類的實現 參考【https://stackoverflow.com/questions/3126130/extending-singletons-in-php】
但是上面參考鏈接其實也有一點問題 【然后我自己添加了一個回答:) 看到的點個贊奧】
————————————————
一般單例模式的實現
class Singleton
{
private static $instance;
private function __construct() {}
final protected function __clone() {} #不允許被重寫并且會被子類繼承
public static function getInstance()
{
if (! self::$instance instanceof self) {
self::$instance = new self();
}
return self::$instance;
}
}
// $s = new Singleton();#Fatal error: Call to private Singleton::__construct()
$s1 = Singleton::getInstance();
$s2 = Singleton::getInstance();
var_dump($s1,$s2); #object(Singleton)#1 (0) { } object(Singleton)#1 (0) { }
#測試出來兩個實例是同一個對象
#測試clone 對象,會報錯,說明真的只有一個對象存在于應用中
// $s2 = clone $s1; #Fatal error: Call to protected Singleton::__clone()
————————————————
上面的代碼看上去沒有任何問題但是如果我們想讓單例模式可以被繼承,讓子類也具有單例模式的特性,就會出錯
Java 中構造函數是私有的不能被繼承,默認情況下Java的子類會在構造函數中調用父類的無參數構造方法
PHP 可以繼承,哪怕父類是私有構造器
下面是測試 PHP代碼
class A extends Singleton
{
}
$a = new A();#Fatal error: Call to private Singleton::__construct() 調用了父類的private 的構造函數
#如果子類中沒有構造函數就使用父類的構造方法,如果有自己的構造方法,就不會自動調用父類的構造方法,需要顯式調用 parent::__construct();
#所以還是需要調用 靜態方法獲得實例
$a = A::getInstance();
var_dump($a);#object(Singleton)#1 (0) { } #出毛病了,實例化之后還是Singleton對象
#解決方法使用PHP動態綁定,關鍵字static 除了靜態方法之外下面羅列動態綁定的特性
有三個特性
1) 在非靜態環境下,所調用的類即為該對象實例所屬的類【就代表了這個實例】
2) 由于 $this-> 會在同一作用范圍內嘗試調用私有方法,而 static:: 則可能給出不同結果。 [$this 可以調用同一范圍的私有變量方法 static 相當于類名 比如說 A::$instance,就不行]
如果 static::function 或者static::$instance 調用的是同一個類里面的方法不管是不是private 都ok 但是如果是不同類的 就會報錯
猜測性小結: 只要static 調用的元素不在同一個類里面 private 就會報錯
3) 另一個區別是 static:: 只能用于靜態屬性 不是方法【方法都可以調用)
所以最后單例模式可以寫成如下格式
需要注意的 使用 self:: 或者 __CLASS__ 對當前類的靜態引用,取決于定義當前方法所在的類
#定義一個抽象類 被其他類繼承
abstract class Singleton
{
protected static $instance; // 這里必須是protected 如果要讓子類繼承 其次protected才能被 static 調用
private function __construct(){}
final protected function __clone(){}
public static function getInstance()
{
if (! static::$instance instanceof static) {
static::$instance = new static();
}
return static::$instance
$a = A::getInstance();
$b = B::getInstance();
$c = B::getInstance();
$d = A::getInstance();
$e = A::getInstance();
var_dump($a,$b,$c,$d,$e);
#object(A)#1 (0) { }
#object(B)#2 (0) { }
#object(B)#2 (0) { }
#object(A)#1 (0) { }
#object(A)#1 (0) { }
————————————————
小結:
public static function getInstance()
{
if (! static::$instance instanceof static) {
static::$instance = new static();
}
return static::$instance;
}
# 上面方法中必須使用static::$instance 不能使用self::$instance 的原因是子類動態調用的是子類的靜態屬性
# 靜態屬性必須是 protected 原因是 動態調用關鍵字static 調動不是在一個原生類里面的private的屬性時相當于直接 類名::$instance
# 子類必須重定義 protected static $instance; 否則使用的是父類的靜態屬性。
大家還有不懂得可以私信給我解答
phpfunction和class有什么區別呢?
function換個說話就函數、自定義函數,只是一個簡單的數據操作而已。class使用于編寫整體框架。對各個function進行分類,使用中實例化。
以上就是關于php實戰教程以及php網站如何連接到遠程mysql數據庫的相關回答,有更多疑問可以加微。