㈠ php數組效率與mysql效率
肯定用1好,資料庫就是用來折騰數據結構的。
用2PHP會導致的局限在,
1、進程間IO通訊暴增。從mysql會向php傳大量的數據。IO通訊是最影響速度的。
2、內存限制。PHP是內存操作。通常默認執行內存為128M,能處理的數據量只會大大小於128M.
除非改默認設置到較大值,加大內存開銷。
3、效率較差。不僅從mysql到php有復制,而且array_unique效率也mysql DISTINCT差。
如果查詢慢,就該在mysql上做優化,多利用view和index,少寫些開銷大的join或group,
加大mysql可使用的內存做緩存。
㈡ php mysql的問題。我在mysql存的欄位類型為int ,為什麼在php 取出來變成string 類型。
不用強制轉換
因為php是弱類型
所以 就算是你認為是string類型的數據,當你需要它是int的時候,php就會把它處理成int。
舉個例子吧
假如你mysql存了一個char類型的「10」
然後 賦給了$a;
再後 print($a+1);
結果會是11。
即是說php根本不在乎它是何種類型。
如果你希望得到101這種結果你應該寫 print($a.'1');
㈢ php按當前年份、季度、當月,查詢mysql資料庫並輸出數組
PHP查詢到的數據存放到數組裡面,一般使用$arr[]=$row的方式實現,$row是mysql_fetch_array獲得的一行數據,本身是一個數組,執行上面的語句之後,這一行會添加存放在額為數組$arr的最後。 典型的例子代碼是這樣的:mysql_connect('127.0.0.1', 'root', '123456');$sql='select * from test.tab';if ($res=mysql_query($sql)){ while($row=mysql_fetch_array($res)) $result[]=$row; mysql_free_resule($res);}else echo "執行SQL語句:$sql\n錯誤:".mysql_error();echo '查詢結果在下面的額為數組裡面:';print_r($result);echo '';
㈣ php把數組寫入mysql的方法
您好,您可以參考如下代碼:
<?php
/*獲取HTML表單提交的數據*/
$id=_POST["id"];
$catid=_POST["catid"];
$ly=array("data***");
/*連接資料庫,如果出錯顯示消息結束程序,否則繼續執行資料庫命令*/
$con=mysql_connect("127.0.0.1","user","password");
if($con==false)
{
echo"錯誤:系統資料庫連接失敗!錯誤信息:".mysql_error($con);
exit();
}else{
/*選擇需要操作資料庫*/
mysql_select_db("mydb",$con);
/*根據ly數組的長度決定執行多少次SQL語句*/
for($i=0;$i<count($ly);$i++)
{
/*設置SQL查詢語句*/
$sql="INSERTINTO`biaoge`VALUES('{$id}','{$catid}',".$ly[$i].")";
/*如果SQL語句執行失敗,返回錯誤代碼;*/
if(mysql_query($sql,$con)==false)
{
echo"資料庫查詢出錯!錯誤代碼:".mysql_errno($con);
mysql_close($con);
exit();
}
}
mysql_close($con);
echo"記錄添加成功!";
}
?>
至於遍歷數組,有很多種方式,如樓上用的foreach語句也是可以的。這里用for的原因是為了方便提問者理解。如果代碼仍有不足或不明白的地方,請您繼續追問,直到給您一個滿意的答復為止~