當前位置:首頁 » 編程語言 » phpmysql引號

phpmysql引號

發布時間: 2022-10-01 00:39:48

A. 怎麼樣才能把" " 雙引號存進MYsql 我是用php

select '"hhhhh"'把雙引號當成一個字元處理吧

B. php向mysql插入數據出錯

mysql語句在執行insert,update時,對於非數字的值,必須加引號,比如

updatetablenamesetattrA='valueA'
updatetablenamesetattrA=valueA;

這樣就會報錯。對於數字的值,可以不加,加上也不會影響插入效果,比如

updatetablenamesetintAttrA=1;
updatetablenamesetintAttrA='1';

這兩種都是可以的。


你這里報錯的一行代碼,假設輸入的$_POST['username'] = 『a』;$_POST['pwd'] = 『b』;$_POST['content'] = 'c';
在處理後,最後執行的是

INSERT INTO userinfo (username, pwd, content) VALUES (a, b, c);

它的錯誤就是上面說的非數字類的值,沒帶引號。

但實際上,正確的語句應該是

INSERT INTO userinfo (username, pwd, content) VALUES (『a』, 『b』, 『c』);

所以你測試的

$query = 'INSERT INTO userinfo (username, pwd, content) VALUES ("username", "pwd", "content")'; 能正確執行。


最後問題的解決方法是:

$query="INSERTINTOuserinfo(username,pwd,content)VALUES('".$_POST['username']."','".$_POST['pwd']."','".$_POST['content'].")";

另外為了看起來舒服點,可以這么寫:
$query=sprintf("INSERTINTOuserinfo(username,pwd,content)VALUES('%s','%s','%s);",$_POST['username'],$_POST['pwd'],$_POST['content']);

最後,你這種寫法,有Sql注入的風險,從安全形度來講是不可取的。所以應該這么寫:
$query=sprintf("INSERTINTOuserinfo(username,pwd,content)VALUES(unhex('%s'),unhex('%s'),unhex('%s'));",bin2hex($_POST['username']),bin2hex($_POST['pwd']),bin2hex($_POST['content']));

C. mysql+php程序中sql語句中的引號使用方法,什麼時候用雙引號什麼時候用單引號

這就要從雙引號和單引號的作用講起:
雙引號裡面的欄位會經過編譯器解釋然後再當作HTML代碼輸出,但是單引號裡面的不需要解釋,直接輸出。例如:
$abc='I love u';
echo $abc //結果是:I love u
echo '$abc' //結果是:$abc
echo "$abc" //結果是:I love u
所以在對資料庫裡面的SQL語句賦值的時候也要用在雙引號裡面SQL="select a,b,c from ..."
但是SQL語句中會有單引號把欄位名引出來
例如:select * from table where user='abc';
這里的SQL語句可以直接寫成SQL="select * from table where user='abc'"
但是如果象下面:
$user='abc';
SQL1="select * from table where user=' ".$user." ' ";對比一下
SQL2="select * from table where user=' abc ' "
我把單引號和雙引號之間多加了點空格,希望你能看的清楚一點。
也就是把'abc' 替換為 '".$user."'都是在一個單引號裡面的。只是把整個SQL字元串分割了。
SQL1可以分解為以下3個部分
1:"select * from table where user=' "
2:$user
3:" ' "
字元串之間用 . 來連接,這樣能明白了吧。

D. php操作MySQL中單引號與怎麼處理

花括弧,花括弧中既可以輸出簡單變數,也可以輸出復雜變數,如數組、對象等;

1.$a = 'abcd';2.$b = array('aaa' => 'abcd', 'bbb' => array(12,34));3.echo "{$a}"; // 輸出 abcd4.echo "{$b['aaa']}"; // 輸出 abcd5.echo "{$b['bbb'][1]}"; // 輸出 34
所以寫的時候想偷懶就用花括弧,不會出錯;
但是在性能上,單引號的性能最好,因為單引號中的內容會直接被當成字元串,沒其他的解析;而解析雙引號的時候,會先判斷雙引號內有沒有變數,有變數就把變數用變數值代替,最後再輸出雙引號內整個的內容;花括弧就更不用說了,可以輸出復雜的變數內容。

E. php mysql_query語句里為什麼引用變數要加單引號,為什麼有時直接用變數名也可以運行通過

你說的這個,不是PHP的范圍了,屬於mysql語法。加單引號和不加單引號區別很大,例如 key=select 和 key = 'select' ,前者執行會產生錯誤,你沒出錯的原因有可能是這樣key=1和key='1' 這樣mysql可以識別的 相同的處理方式。總之加引號不會錯的,不加引號,有些情況會出錯

F. 在PHP 和 MYSQL中 符號: ` 起到的是什麼作用

這個很簡單啊,不需要參考資料。這個在mysql語句中常用到。例如:select `id`,`name` from `user`;給查詢的欄位和表名加上這個符號,能提高sql查詢效率。建議你寫sql語句的時候,給這些都加上這個符號。還有就是如果你的表裡欄位含有關鍵字的,用這個符號包起來就不會報錯啦。

G. PHP如何取得mysql欄位值並記算時間

兩種方式 :
1、可以直接用SQL 里的函數 sum() ;

如:"select sum(欄位) as num from tab "; //sum 取該欄位所有列的總和

2、用PHP函數 sum($array) ; //取數組中值的總和

當然 欄位必須是int型的

H. php 加單引號後 就報MYSQL錯誤! 求解!

SELECT G.groupname,G.groupid,G.des,G.groupimg FROM dede_group_user AS U LEFT JOIN dede_groups AS G ON U.gid=G.groupid WHERE U.uid IN(2) AND U.isjoin=1 AND U.gid<>1\' LIMIT 0,6

/group/bbs.php?id=1' 這里多了一單引號,因為這里多了這個單引號,你的程序獲取參數id時會將這個單引號一同獲取到,所以,在放入你的sql語句中式,多了一個單引號,所以執行sql語句時會發生語法錯誤。
所以,在將獲取到得變數放入sql語句中式,最好做一下處理,即:如果id是整形的話,最好轉為整形在放入,同時也可以防止sql注入的發生。

I. php 把數據寫入Mysql資料庫里. 雙引號被轉成"了

這是被htmlspecialchars轉義了,你出來的時候反轉義一下htmlsepcailchars_decode()

J. 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))"
?>
---------------------------------------------------------------------
仔細看看這些
相信對你有所幫助

熱點內容
如何看計算機配置信息 發布:2024-12-25 13:18:59 瀏覽:850
安卓手機如何轉到apple手機 發布:2024-12-25 13:06:42 瀏覽:621
linux盤符 發布:2024-12-25 13:05:56 瀏覽:441
資料庫表大小 發布:2024-12-25 13:05:49 瀏覽:209
oppo手機在哪裡找到身份證密碼 發布:2024-12-25 13:02:24 瀏覽:985
911黑武士哪個配置值得入手 發布:2024-12-25 13:00:41 瀏覽:792
如何不用編譯器運行web項目 發布:2024-12-25 13:00:40 瀏覽:847
私密存儲公司 發布:2024-12-25 12:58:31 瀏覽:838
水密碼美白怎麼樣 發布:2024-12-25 12:56:46 瀏覽:670
5日線的演算法 發布:2024-12-25 12:43:56 瀏覽:743