php簡單筆記

學習過程就是一個不斷遺忘的過程,我把這些容易忽視遺漏的點記錄下來。(後期還會繼續增加)

一、基礎

1.  在用echo和print進行輸出時,如果語句內部有雙引號時,就用單引號進行輸出。如:echo ‘She said “Hello!”’;

2.  在雙引號內使用換行符(\n);

3.  如果單引號內部又出現單引號,則使用轉義字符\.如:

 echo ‘I\’m OK!’;

4.  可以使用‘.’對字符串進行連接。

5.  關於數字的函數:

round():將小數四捨五入爲最接近的整數或者把小數四捨五入到指定的位數。

如:$n = 3.14;

$n = round($n);//n = 3

或者:

$n = round($n,1);//n = 3.1

number_format():將一個數字轉換成更普遍的書寫的版本,並使用逗號吧它分成“三位一組”。例如:

$n = 20943;

$n = number_format($n);//20,943

   函數還可以設置小數點的指定位數:

$n = 20943;

$n = number_format($n,2);//20,943.00

二、聯繫數據庫

       php連接mysql數據庫的幾種方法

1.最原始的方法(php5.5之後都不支持這種方法了)

    <?php
    $con = mysql_connect("localhost","root","");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    mysql_close($con);
    ?>

      2.面向對象mysqli

    <?php
    $mysqli = new mysqli('localhost','root','','volunteer');
    if (mysqli_connect_errno()){
    	die('Unable to connect!'). mysqli_connect_error();
    }
    ?>
      3.pdo連接mysql

    <?php 
     
    $db = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    try {
    	foreach ($db->query('select * from user') as $row){
    		print_r($row);
    	}
    	$db = null;  //關閉數據庫
    } catch (PDOException $e) {
    	echo $e->getMessage();
    }
    ?>

注:php5.5之後推薦使用mysqli和pdo來操作mysql


三、mysql數據表連接

Mysql 中數據表的連接方式整體可以分爲兩類:

1.內連接

       內連接又主要包括相等連接和自然鏈接;

2.外連接

       外連接主要包括右向外連接、左向外連接以及完整外部連接;



用簡單的語言可以描述爲:

        內連接:把兩個表中數據對應的數據查出來。其中記錄爲空的不列出來;

        外連接:以某個表爲基準把對應的數據查出來。

                左連接以左表爲主,左表中的所有記錄會列出來,而右表只會顯示符合搜索條件的記錄;

                右連接以右表爲主,右表中的所有記錄會列出來,而左表只會顯示符合搜索條件的記錄;


一些小問題:

備份mysql數據庫的時候出現:

mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect
可以確定的是數據庫密碼是正確的,查了好久才知道原因->

系統上面有兩個版本的mysql,系統默認的sock是之前舊版本的路徑,所以現在備份的時候要指定新sock的位置:

mysqldump -u root -p --host=localhost test>test.sql --socket=/home/xuexiaoxu/tmp/mysqld.sock
備份成功!

這部分的內容可以參考這篇文章,講解的十分詳細:http://blog.chinaunix.net/uid-26805356-id-4138986.html



解決不能通過mysql.sock連接MySQL問題

這個問題主要提示是,不能通過'/tmp/mysql.sock'連到服務器,而php標準配置正是用過'/tmp/mysql.sock',但是一些mysql安裝方法將mysql.sock放在/var/lib/mysql.sock或者其他的什麼地方,你可以通過修改/etc/my.cnf文件來修正它,打開文件,可以看到如下的東東:
[mysqld]
socket=/var/lib/mysql.sock
改一下就好了,但也會引起其他的問題,如mysql程序連不上了,再加一點:
[mysql]
socket=/tmp/mysql.sock
或者還可以通過修改php.ini中的配置來使php用其他的mysql.sock來連,這個大家自己去找找

或者用這樣的方法:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章