㈠ 如何在Thinkphp中 使用Mysql函數
配置好資料庫後直接調用模型即可
㈡ php中的mysql函數的參數格式問題
給你找了些資料:
介紹的挺詳細的:
mysql_fetch_array函數
--
從結果集中取得一行作為關聯數組(是以你所搜索的欄位作為的鍵名),或數字數組(也就是你所說的0,1,2,3...),或二者兼有
相關說明
array
mysql_fetch_array
(
resource
result
[,
int
result_type])
返回根據從結果集取得的行生成的數組,如果沒有更多行則返回
false。
mysql_fetch_array()
是
mysql_fetch_row()
的擴展版本。除了將數據以數字索引方式儲存在數組中之外,還可以將數據作為關聯索引儲存,用欄位名作為鍵名。
如果結果中的兩個或以上的列具有相同欄位名,最後一列將優先。要訪問同名的其它列,必須用該列的數字索引或給該列起個別名。對有別名的列,不能再用原來的列名訪問其內容(本例中的
'field')。
還是看幾個例子:
例子
1.
相同欄位名的查詢
select
table1.field
as
foo,
table2.field
as
bar
from
table1,
table2
有一點很重要必須指出,用
mysql_fetch_array()
並不明顯
比用
mysql_fetch_row()
慢,而且還提供了明顯更多的值。
mysql_fetch_array()
中可選的第二個參數
result_type
是一個常量,可以接受以下值:mysql_assoc,mysql_num
和
mysql_both。本特性是
php
3.0.7
起新加的。本參數的默認值是
mysql_both。
如果用了
mysql_both,將得到一個同時包含關聯和數字索引的數組。用
mysql_assoc
只得到關聯索引(如同
mysql_fetch_assoc()
那樣),用
mysql_num
只得到數字索引(如同
mysql_fetch_row()
那樣)。
注:
該函數返回的欄位名是大小寫敏感的。
例子
2.
mysql_fetch_array
使用
mysql_num
<?php
mysql_connect("localhost",
"mysql_user",
"mysql_password")
or
die("could
not
connect:
"
.
mysql_error());
mysql_select_db("mydb");
$result
=
mysql_query("select
id,
name
from
mytable");
while
($row
=
mysql_fetch_array($result,
mysql_num))
{
printf
("id:
%s
name:
%s",
$row[0],
$row[1]);
}
mysql_free_result($result);
?>
例子
3.
mysql_fetch_array
使用
mysql_assoc
<?php
mysql_connect("localhost",
"mysql_user",
"mysql_password")
or
die("could
not
connect:
"
.
mysql_error());
mysql_select_db("mydb");
$result
=
mysql_query("select
id,
name
from
mytable");
while
($row
=
mysql_fetch_array($result,
mysql_assoc))
{
printf
("id:
%s
name:
%s",
$row["id"],
$row["name"]);
}
mysql_free_result($result);
?>
例子
4.
mysql_fetch_array
使用
mysql_both
<?php
mysql_connect("localhost",
"mysql_user",
"mysql_password")
or
die("could
not
connect:
"
.
mysql_error());
mysql_select_db("mydb");
$result
=
mysql_query("select
id,
name
from
mytable");
while
($row
=
mysql_fetch_array($result,
mysql_both))
{
printf
("id:
%s
name:
%s",
$row[0],
$row["name"]);
}
mysql_free_result($result);
此例中的"while
($row
=
mysql_fetch_array($result,
mysql_both))"
也可以將括弧中的第二個參數去掉,既等價於:
"while
($row
=
mysql_fetch_array($result))"
?>
---------------------------------------------------------------------
仔細看看這些
相信對你有所幫助
㈢ 在PHP中怎麼調用mysql存儲過程用到哪些函數
<?php
//建立資料庫連接
$link = mysqli_connect('localhost','root','root','mydb');
$sql = "call getEmail('00056')";
//設置字元集
mysqli_query($link,"set names gbk");
$result = mysqli_query($link,$sql);
$row = mysqli_fetch_array($result);
echo "郵件地址:".$row['email'];
?>
這里有兩篇教程說得非常詳細:
《MySQL 5 存儲過程》:http://www.sunchis.com/html/php/mysql/2010/0305/42.html
《PHP調用存儲過程》:http://www.sunchis.com/html/php/mysql/2010/0305/43.html
㈣ 關於在php中使用mysql的自定義函數的問題
用PHP的 mysql_query()函數去調用執行MYSQL中的函數(包括自定義的)。
如:mysql_query("自定義的MYSQL函數放這里");
㈤ 關於php操作mysql執行資料庫查詢的一些常用操作匯總
php操作mysql步驟:
1.$connect=mysql_connect('localhost','root','123456')
or
die('資料庫連接失敗。'mysql_error());鏈接mysql。
2.mysql_select_db('database',$connect)選擇鏈接的資料庫。
3.mysql_query('Set
names
gb2312');$sql
=
"select
*
from
blog_article";准備要查詢的數據。
4.$datas
=
mysql_query($sql);執行sql查詢。
5.$data
=
mysql_fetch_assoc($datas)得到查詢到的緩存在內存中的一條數據。
6.print_r($data);
相同點:三個函數都是返回資料庫中查詢到的一行數據(說的再清楚點就是一條數據)。
不同點:mysql_fetch_assoc()用的是資料庫中相應的欄位名作為的key值(也就是數組下標)
如:filed['id']=1;
mysql_fetch_row()用的是自動生成的數字(從0開始依次生成)作為的key值(也就是數組下標)
如:filed[0]=1;
mysql_fetch_array()用的是自動生成的數字(從0開始依次生成)作為的key值(也就是數組下標),而且它還同時生成資料庫中相應的欄位名作為的key值(也就是數組下標)
如:
filed[0]=1,filed['id']=1;也就是說,mysql_fetch_array()將mysql_fetch_assoc()和mysql_fetch_row()查詢到的結果合為了一體了。
mysql_fetch_object()與mysql_fetch_assoc()差不多。只是mysql_fetch_assoc()返回的是數組。mysql_fetch_object()返回的是object對象。
mysql_insert_id() 取得上一步
INSERT
操作產生的
ID。
mysql_result()
函數返回結果集中一個欄位的值。
mysql_num_fields()
函數返回結果集中欄位的數目。
mysql_affected_rows();返回前一次
MySQL
操作所影響的記錄行數。
mysql_num_rows(mysql_query($sql))獲得結果集中行的數目。
mysql_pconnect()
函數打開一個到
MySQL
伺服器的持久連接。
mysql_pconnect()
和
mysql_connect()
非常相似,但有兩個主要區別:
1.
當連接的時候本函數將先嘗試尋找一個在同一個主機上用同樣的用戶名和密碼已經打開的(持久)連接,如果找到,則返回此連接標識而不打開新連接。
2.
其次,當腳本執行完畢後到
SQL
伺服器的連接不會被關閉,此連接將保持打開以備以後使用(mysql_close()
不會關閉由
mysql_pconnect()
建立的連接)。
mysql_data_seek(mysql_query($sql),8);獲得結果集中的第8條數據。(mysql_num_rows(mysql_query($sql))和mysql_data_seek(mysql_query($sql),8)在mysql_unbuffered_query($sql)不可以使用。)
mysql_unbuffered_query($sql)和mysql_query($sql)效果差不多,但是
mysql_unbuffered_query($sql)不緩存。mysql_query($sql)會緩存查詢的結果。
mysql_close();關閉mysql的最近的鏈接。
mysql_field_flags(mysql_query($sql),6)返回第六個欄位的表屬性輸出如:not_null
primary_key
auto_increment
。
mysql_fetch_lengths(mysql_query($sql))返回該條數據的所有欄位的每個欄位的長度。返回的是一個數字組成的數組。
mysql_field_name(mysql_query($sql),3)返回第三個欄位的欄位名。
mysql_field_table(mysql_query($sql),0)返回指定欄位所在的表名。
mysql_free_result(mysql_query($sql))
函數釋放結果內存。
mysql_get_client_info()
函數返回
MySQL
客戶端信息。
mysql_get_host_info()
取得
MySQL
主機信息。
㈥ php連接mysql資料庫,用什麼函數
第一個問題:的1是把mysql的鏈接函數做了封裝,即封裝成類了,而2是直接使用mysql提示的內置函數鏈接資料庫,原則上用1更好一點,提供了對象,日後也方便修改移值。
第二個問題:原因是你沒有把mysql類放道對應目錄里,所以你實例化時,他就報錯,說找不到這個類。
㈦ 關於php連接mysql函數
由於沒有看到完整的代碼,僅就看到的代碼試作解答如下:
1.
Notice:
Undefined
variable:
db
in
C:\xampp\htdocs\shop\files\mysql.php
on
line
5
警告:未字義的變數db(第5行不太清楚是哪行代碼)。
這個錯誤提示,從已知的代碼來看,其原因應該是你在函數體里引用了一個函數體外定義的變數(db),從代碼看其實就是沒有注意到,
對於變數
作用域范圍(全局、局部)錯誤應用的問題。
簡單的說,函數
select_mycx
里找不到
db。
解決辦法:
(1).
用參數傳遞進去。
function
select_mycx($table,$by,$select_str,$number,$db)
{
.....
}
(2).
在參數體里定義全局變數引用:
function
select_mycx($table,$by,$select_str,$number)
{
global
$db;
....
}
2.Fatal
error:
Call
to
a
member
function
query()
on
a
non-object
in
C:\xampp\htdocs\shop\files\mysql.php
on
line
5
這個錯誤實際上是上面的錯誤引起的,因為$db沒有正確引入,所以再
query
當然不能正確執行。
㈧ 怎麼寫mysql存儲過程,並用php調用它
實現原理
首先,需要知道怎麼寫mysql存儲過程,了解mysq存儲過程語言,
其次,使用mysql工具創建存儲過程。
最後,通過mysql_query()函數執行mysql變數的設置和mysql存儲過程及返回值。
具體代碼如下:
mysql存儲過程代碼
createprocerepro_name(user_idint)
begin
.........
end
2. PHP代碼
$host="localhost";
$user="root";
$password="232412";
$db="user_db";
$dblink=mysql_connect($host,$user,$password)ordie("can'tconnecttomysql");
mysql_select_db($db,$dblink)ordie("can'tselectuser_db");
$user_id=1;
$res=mysql_query("set@a=$user_id",$dblink);
$res=mysql_query("callpro_name(@a)",$dblink);
㈨ php 怎麼調用,mysql 存儲過程 exec,煩死了
1。執行callprocere()語句。
也就是mysql_query("callproceer([var1]...)");
2.如果有返回值,執行select@ar,返回執行結果。
mysql_query("select@var)"
接下來的操作就和php執行一般的mysql語句一樣了。可以通過mydql_fetch_row()等函數獲得結果。
如果時函數。直接執行selectfunction()就可以了。
$host="localhost";
$user="root";
$password="11212";
$db="samp_db";
$dblink=mysql_connect($host,$user,$password)
ordie("can'tconnecttomysql");
mysql_select_db($db,$dblink)
ordie("can'tselectsamp_db");
$res=mysql_query("set@a=$password",$dblink);
$res=mysql_query("callaa(@a)",$dblink);
$res=mysql_query("select@a",$dblink);
$row=mysql_fetch_row($res);
echo$row[0];
㈩ php調用返回多結果的mysql存儲過程
直接處理存儲過程的輸出參數即可。
調用存儲過程的方法。
a。如果存儲過程有 IN/INOUT參數,聲明一個變數,輸入參數給存儲過程,該變數是一對,
一個php變數(也可以不必,只是沒有php變數時,沒有辦法進行動態輸入),一個Mysql
變數。
b。如果存儲過程有OUT變數,聲明一個Mysql變數。
mysql變數的聲明比較特殊,必須讓mysql伺服器知道此變數的存在,其實也就是執行一條mysql語句。
入set @mysqlvar=$phpvar ;
c。使用mysql_query()/mysql_db_query()執行mysql 變數聲明語句。
mysql_query("set @mysqlvar【=$pbpvar】");
這樣,在mysql伺服器裡面就有一個變數,@mysqlar。如果時IN參數,那麼其值可以有phpar傳入。
d。 如果時存儲過程。
1。執行 call procere()語句。
也就是mysql_query("call proceer([var1]...)");
2. 如果有返回值,執行select @ar,返回執行結果。
mysql_query("select @var)"
接下來的操作就和php執行一般的mysql語句一樣了。可以通過mydql_fetch_row()等函數獲得結果。
如果時函數。 直接執行 select function() 就可以了。
傳出參數的存儲過程:
$sql = "
create procere myproce3(out score int)
begin
set score=100;
end; ";
mysql_query($sql);//創建一個myproce3的存儲過程
$sql = "call test.myproce3(@score);";
mysql_query($sql);//調用myproce3的存儲過程
$result = mysql_query('select @score;');
$array = mysql_fetch_array($result);
echo '<pre>';print_r($array);