導航:首頁 > 編程語言 > phpmysqldecimal

phpmysqldecimal

發布時間:2022-05-18 06:18:10

① 在php做mysql查詢中為什麼sum(欄位名)出錯!

sum以最精確的 expression 數據類型返回所有表達式值的和
返回結果:
money 精確到貨幣單位的千分之十
float(n) n在1-14,精度7位,25-53,精度15位
decimal 精度38位
int 精度為整數位數

sum求的和超過mediumint所表示的精度了,考慮換種類型

② 選擇MySQL資料庫的命令以及PHP腳本下的操作方法

在你連接到
MySQL
資料庫後,可能有多個可以操作的資料庫,所以你需要選擇你要操作的資料庫。
從命令提示窗口中選擇MySQL資料庫

mysql>
提示窗口中可以很簡單的選擇特定的資料庫。你可以使用SQL命令來選擇指定的資料庫。
實例
以下實例選取了資料庫
TUTORIALS:
[root@host]#
mysql
-u
root
-p
Enter
password:******
mysql>
use
TUTORIALS;
Database
changed
mysql>
執行以上命令後,你就已經成功選擇了
TUTORIALS
資料庫,在後續的操作中都會在
TUTORIALS
資料庫中執行。
注意:所有的資料庫名,表名,表欄位都是區分大小寫的。所以你在使用SQL命令時需要輸入正確的名稱。
使用PHP腳本選擇MySQL資料庫
PHP
提供了函數
mysql_select_db
來選取一個資料庫。函數在執行成功後返回
TRUE
,否則返回
FALSE

語法
bool
mysql_select_db(
db_name,
connection
);
實例
以下實例展示了如何使用
mysql_select_db
函數來選取一個資料庫:
<html>
<head>
<title>Selecting
MySQL
Database</title>
</head>
<body>
<?php
$dbhost
=
'localhost:3036';
$dbuser
=
'guest';
$dbpass
=
'guest123';
$conn
=
mysql_connect($dbhost,
$dbuser,
$dbpass);
if(!
$conn
)
{
die('Could
not
connect:
'
.
mysql_error());
}
echo
'Connected
successfully';
mysql_select_db(
'TUTORIALS'
);
mysql_close($conn);
?>
</body>
</html>
PS:MySQL
的數據類型
MySQL中定義數據欄位的類型對你資料庫的優化是非常重要的。
MySQL支持多種類型,大致可以分為三類:數值、日期/時間和字元串(字元)類型。
數值類型
MySQL支持所有標准SQL數值數據類型。
這些類型包括嚴格數值數據類型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似數值數據類型(FLOAT、REAL和DOUBLE
PRECISION)。
關鍵字INT是INTEGER的同義詞,關鍵字DEC是DECIMAL的同義詞。
BIT數據類型保存位欄位值,並且支持MyISAM、MEMORY、InnoDB和BDB表。
作為SQL標準的擴展,MySQL也支持整數類型TINYINT、MEDIUMINT和BIGINT。下面的表顯示了需要的每個整數類型的存儲和范圍。
日期和時間類型
表示時間值的日期和時間類型為DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每個時間類型有一個有效值范圍和一個"零"值,當指定不合法的MySQL不能表示的值時使用"零"值。
TIMESTAMP類型有專有的自動更新特性。
字元串類型
字元串類型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。該節描述了這些類型如何工作以及如何在查詢中使用這些類型。
CHAR和VARCHAR類型類似,但它們保存和檢索的方式不同。它們的最大長度和是否尾部空格被保留等方面也不同。在存儲或檢索過程中不進行大小寫轉換。
BINARY和VARBINARY類類似於CHAR和VARCHAR,不同的是它們包含二進制字元串而不要非二進制字元串。也就是說,它們包含位元組字元串而不是字元字元串。這說明它們沒有字元集,並且排序和比較基於列值位元組的數值值。
BLOB是一個二進制大對象,可以容納可變數量的數據。有4種BLOB類型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它們只是可容納值的最大長度不同。
有4種TEXT類型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。這些對應4種BLOB類型,有相同的最大長度和存儲需求。

③ php表單寫入mysql資料庫的代碼

<!--表單文件,拷入index.php-->
<!DOCTYPEhtml>
<html>
<head>
<style>
label{display:inline-block;width:100px;margin-bottom:10px;}
</style>


<title>Addstudents</title>
</head>
<body>

<!--資料庫用mysqli面向過程調用方法-->
<formmethod="post"action="write2db.php">

<!--資料庫用mysqli面向過程調用方法
<formmethod="post"action="write2db_sqlio.php">
-->
<!--資料庫用PDO調用方法
<formmethod="post"action="write2db_pdo.php">
-->

<label>FirstName</label>
<inputtype="text"name="first_name"/>
<br/>
<label>LastName</label>
<inputtype="text"name="last_name"/>
<br/>
<label>department</label>
<inputtype="text"name="department"/>
<br/>
<label>Email</label>
<inputtype="text"name="email"/>

<br/>
<inputtype="submit"value="Addstudents">
</form>

</body>
</html>

------------------------------

<?php
//拷貝命名為write2db.php,資料庫用mysqli面向過程調用方法
//print_r($_POST);

//createavariable
$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$department=$_POST['department'];
$email=$_POST['email'];

//調試用
echo"Yourinput:";
echo$first_name;
echo'<br/>';
echo$last_name;
echo'<br/>';
echo$department;
echo'<br/>';
echo$email;
echo'<br/>';


$servername="localhost";
//
//$username="username";
//$password="password";
$username="tester";
$password="testerPassword";
//yourdatabasename
$dbname="test";

$tablename="student";//Createconnection
$connect=mysqli_connect($servername,$username,$password,$dbname);

if(!$connect){
die("Connectionfailed:".mysqli_connect_error());
}
//Executethequery

$sql="INSERTINTO$tablename(first_name,last_name,department,email)
VALUES('$first_name','$last_name','$department','$email')";


if(mysqli_query($connect,$sql)){
echo"Hooray!.Pleasecheckdatabase.";
}else{
echo"Error:".$sql."<br/>".mysqli_error($connect);
}

mysqli_close($connect);

?>
<?php
//拷貝命名為write2db_sqlio.php,資料庫用mysqli面向對象調用方法
//print_r($_POST);

//createavariable
$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$department=$_POST['department'];
$email=$_POST['email'];

//調試用
echo"Yourinput:";
echo$first_name;
echo'<br/>';
echo$last_name;
echo'<br/>';
echo$department;
echo'<br/>';
echo$email;
echo'<br/>';


$servername="localhost";
//
//$username="username";
//$password="password";
$username="tester";
$password="testerPassword";
//databasename
$dbname="test";

$tablename="student";//Createconnection
$conn=newmysqli($servername,$username,$password,$dbname);
//Checkconnection
if($conn->connect_error){
die("Connectionfailed:".$conn->connect_error);
}

$sql="INSERTINTO$tablename(first_name,last_name,department,email)
VALUES('$first_name','$last_name','$department','$email')";

if($conn->query($sql)===TRUE){
echo"Newrecordcreatedsuccessfully";
}else{
echo"Error:".$sql."<br>".$conn->error;
}

$conn->close();

?>
<?php
//拷貝為文件write2db_pdo.php,資料庫用PDO調用方法

//print_r($_POST);
avariable
$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$department=$_POST['department'];
$email=$_POST['email'];

//調試用
echo"Yourinput:";
echo$first_name;
echo'<br/>';
echo$last_name;
echo'<br/>';
echo$department;
echo'<br/>';
echo$email;
echo'<br/>';


$servername="localhost";
//
//$username="username";
//$password="password";
$username="tester";
$password="testerPassword";
//yourdatabasename
$dbname="test";

$tablename="student";//Createconnection
try{
$conn=newPDO("mysql:host=$servername;dbname=$dbname",$username,$password);
//setthePDOerrormodetoexception
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql="INSERTINTO$tablename(first_name,last_name,department,email)
VALUES('$first_name','$last_name','$department','$email')";
//useexec()
$conn->exec($sql);
echo"Newrecordcreatedsuccessfully";
}
catch(PDOException$e)
{
echo$sql."<br>".$e->getMessage();
}

$conn=null;

?>
--創建資料庫test,將此文件存為test.sql導入資料庫,或者手動創建表結構
--phpMyAdminSQLDump
--version4.7.4
--https://www.phpmyadmin.net/
--
--Host:127.0.0.1:3306
--GenerationTime:Mar12,2018at04:04AM
--Serverversion:5.7.19
--PHPVersion:7.1.9

SETSQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SETAUTOCOMMIT=0;
STARTTRANSACTION;
SETtime_zone="+00:00";


/*!40101SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT*/;
/*!40101SET@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS*/;
/*!40101SET@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION*/;
/*!40101SETNAMESutf8mb4*/;

--
--Database:`test`
--

----------------------------------------------------------

--
--Tablestructurefortable`student`
--

DROPTABLEIFEXISTS`student`;
CREATETABLEIFNOTEXISTS`student`(
`id`tinyint(3)UNSIGNEDNOTNULLAUTO_INCREMENT,
`first_name`varchar(20)NOTNULL,
`last_name`varchar(20)NOTNULL,
`department`varchar(50)NOTNULL,
`email`varchar(50)NOTNULL,
PRIMARYKEY(`id`)
)ENGINE=MyISAMAUTO_INCREMENT=2DEFAULTCHARSET=utf8;

--
--Dumpingdatafortable`student`
--

INSERTINTO`student`(`id`,`first_name`,`last_name`,`department`,`email`)VALUES
(1,'first1','last1','cs','[email protected]');
COMMIT;

/*!40101SETCHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT*/;
/*!40101SETCHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS*/;
/*!40101SETCOLLATION_CONNECTION=@OLD_COLLATION_CONNECTION*/;

④ mysql欄位是DECIMAL(9,2) 欄位=''是什麼意思

mysql欄位decimal(9,2)中9是定點精度,2是小數位數。

存在這么一個公式:decimal(a,b)。

其中a指定指定小數點左邊和右邊可以存儲的十進制數字的最大個數,最大精度38;

b指定小數點右邊可以存儲的十進制數字的最大個數,小數位數必須是從 0 到 a之間的值,默

認小數位數是 0。

⑤ mysql在php中的函數頭輸入答案 當要高精運算,要什麼輸入答案 如何終止php的sq|連接

這個我只能給你思路,每個人都有不一樣的編程風格和習慣,
1 首先你要要確定mysql與php中的函數有什麼關系,無關系就不需要用到資料庫,有關系那麼就用存儲過程,你會用的話就用 ,不會用那麼就用表直接輸入讀取
2 要高精運算,那麼是使用decimal、float、double這是三個中的哪一個,撿你會用的
3在php中編寫輸入參數,並將結果列印出來然後斷開資料庫的連接,也叫關閉資料庫
<?php
//localhost 主機名 或者127.0.0.1 root 資料庫賬戶aaaa資料庫密碼
$con = mysql_connect("localhost","root","aaaa");
if (!$con)
{
//如果連接失敗提示mysql錯誤代碼
die('Could not connect: ' . mysql_error());
}else{
echo '連接成功;
}

// 關閉資料庫連接
mysql_close($con);

⑥ 為何用php頁面向mysql提交數據加入的數據全為0

$sql="insert into waterelecticmoney (id,month,totalmoney,A,B,C,D,E,F,G,H,I,J)".
"values ('','$_POST[month])','$_POST[totalmoney]','$_POST[A]','$_POST[B]','$_POST[C]')"; //請問,你這里的$_POST[month]等等一系列的變數是哪裡來的?把程序改了罷,看下方的完整程序,你就知道錯在哪裡了:

<form action="submit.php" method="post">

本月水電總費用:<input type="text" name="month" /><br/>//這里name與後面寫資料庫的POST括弧中的字元串要一致才行。
單位價格:<input type="text" name="totalmoney" /><br/>
A居住天數:<input type="text" name="A" /><br/>
B居住天數:<input type="text" name="B" /><br/>
C居住天數:<input type="text" name="C" /><br/>

<input type= "submit" name="submit" value="提交"/>
</form>

<?php

include ("conn.php");

if ($_POST['submit']){

$sql="insert into waterelecticmoney (id,month,totalmoney,A,B,C,D,E,F,G,H,I,J)".
"values ('','$_POST[month])','$_POST[totalmoney]','$_POST[A]','$_POST[B]','$_POST[C]')";

mysql_query($sql);
echo "提交成功";
}

?>

⑦ php與mysql的float類型的精度是分別怎麼樣的

對於單精度浮點數Float: 當數據范圍在±131072(65536×2)以內的時候,float數據精度是正確的,但是超出這個范圍的數據就不穩定,沒有發現有相關的參數設置建議:將float改成double或者decimal,兩者的差別是double是浮點計算,decimal是定點計算,會得到更精確的數據。
1.float類型
float列類型默認長度查不到結果,必須指定精度,
比如 num float, insert into table (num) values (0.12); select * from table where num=0.12的話,empty set。

⑧ PHP下如何創建MYSQL存儲過程

直接上代碼:
mysql_connect("localhost","user","pwd");
mysql_select_db('testdata')ordie(mysql_error());
$sql="createproceretb_neaten(inrecint,inpavarchar(15),inqydecimal(10,2),inarvarchar(6))
begin
updatetest1setqty=qty-qywhererecordnum=rec;
insertintotest2setbname=pa,area=ar,qty=qy,date=date_format(now(),'%Y%m%d'),time=date_format(now(),'%Y%m%d');
end;";
mysql_query($sql)ordie(mysql_error());
若是存儲過程里含有捕獲select結果的語句時,需在mysql_connect時調整參數
mysql_connect("localhost","user","password",1,131072)
執行時,直接運行
mysql_query(tb_neaten(va1,va2,va3,va4));

⑨ MySQL的float和decimal的區別疑問

float是單精度浮點數,decimal不屬於浮點數類型,可以在定義時劃定整數部份以及小數部分的位數。
如果你要認真學習Mysql或PHP開發編程,建議能到正規培訓機構參加培訓,會有專業老師幫助你,讓你少走很多彎路。

⑩ 我mysql數據欄位我設置了decimal那麼php運算我用哪個類型好呢怎麼用post過來的數據

運算還是正常運算啊,結果保存的時候用cast(結果 as decimal)函數轉換一下就行了

閱讀全文

與phpmysqldecimal相關的資料

熱點內容
二次元表格編程 瀏覽:20
plc編程器保停 瀏覽:963
如何降低伺服器的內存佔用率 瀏覽:868
阿里雲伺服器是個什麼意思 瀏覽:817
國內最好的數控編程培訓學校 瀏覽:13
222乘104列是演算法 瀏覽:159
程序員溝通正確姿勢 瀏覽:969
魔玩app怎麼視頻推廣 瀏覽:960
程序員抽獎送禮 瀏覽:458
北京java程序員薪資 瀏覽:658
如何創建網路平台或者app 瀏覽:355
python隨機數生成控制概率 瀏覽:236
壓縮機並聯運行 瀏覽:899
兩位單片機 瀏覽:63
四川音樂類投檔線的演算法 瀏覽:650
建行app如何改轉賬卡 瀏覽:27
android開發升級 瀏覽:299
要火社區app進不去怎麼辦 瀏覽:826
安卓手機上的自定義功能怎麼用 瀏覽:230
方舟伺服器怎麼購買進去資格 瀏覽:44