phpmysqllike
{$var}
sql語句里沒有這樣的用法
'$var'
使用單引號,一般是在這樣的情況下"select * from user where user_name like '%$name%'"
使用雙引號
"$id"會被理解為變數但是雙引號之間要用.這個符號連接
一般說來在sql語句中變數不需要用任何符號
$sql="select * from biaoming where id=$id and name=$name";
就可以了
但是注意 如果變數是一個數組的值 那麼應該這樣
$sql="select * from biaoming where id=$id and name=$name[myname]";
$name[myname] 這里的myname不應該使用任何引號包圍
Ⅱ 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:" ' "
字元串之間用 . 來連接,這樣能明白了吧。
Ⅲ php+mysql+like+通配符+變數
<?php
//設置級別錯誤,通知類除外
error_reporting('E_ALL&~E_NOTICE');
/**1---傳入頁碼,使用GET獲取**/
$page=$_GET['p'];
/**2---根據頁碼取出數據:php->mysql處理**/
$host="localhost";
$username="root";
$password="root";
$db="db4"; //資料庫
$mysql_table="person"; //數據表
$table_guanjianzi="think";//關鍵字
$pageSize=10;
$showPage=5;
//連接資料庫,面向過程
$conn=mysqli_connect($host,$username,$password);
if(!$conn){
echo "資料庫連接失敗";
exit;
}
//選擇所要操作的資料庫
mysqli_select_db($conn,$db);
//設置資料庫編碼格式
mysqli_query($conn,"SET NAMES UTF8");
//編寫sql獲取分頁數據 SELECT * FROM 表名 LIMIT 起始位置,顯示條數
//注意:以下id,name,age,say都是欄位節點名,person是表名,db4是資料庫名,think是指定的關鍵字.
$sql = "SELECT id, name, age, say
FROM person
WHERE say LIKE '%{$table_guanjianzi}%' order by id ASC LIMIT ".($page-1)*$pageSize .",{$pageSize}"; //雙引號能包單引號,反過來不行,會出錯./
// $sql = 'SELECT id, name, age, say
// FROM person
// WHERE say LIKE "%'think'%" order by id ASC LIMIT '.($page-1)*$pageSize .",{$pageSize}";
// 節點名 關鍵字 節點名 可指定數量limit後可寫一個指定的數字
//$sql="select * from $mysql_table"
//$sql='select * from data where Id='.$id.' order by '.$item.' desc';
//把sql語句傳送到資料庫
$result=mysqli_query($conn,$sql);
//將數據顯示到table中,並未table設置格式
echo "<div class='content'>";
echo "<table border=1 cellspacing=0 width=30% align=center>";
echo "<tr><td>ID</td><td>NAME</td><td>say</td></tr>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>{$row['id']}</td>";
echo "<td>{$row['name']}</td>";
echo "<td>{$row['say']}</td>";
echo "<tr>";
}
echo "</table>";
echo "</div>";
//釋放結果
mysqli_free_result($result);
//關閉資料庫
mysqli_close($conn);
Ⅳ php連接不上mysql但mysql命令行操作正常的解決方法
故障狀況:php網站連接mysql失敗,但在命令行下通過mysql命令可登錄並正常操作。
解決方案:
1、命令行下登錄mysql,執行以下命令:
復制代碼
代碼如下:show
variables
like
'socket';
執行後會得到類似於如下回顯:
復制代碼
代碼如下:
"Variable_name"
"Value"
"socket"
"/home/mysql/data/mysql.sock"
2、編輯php.ini,找到mysql.default_socket配置項,默認一般是空值(使用編輯Mysql時設置行祥腔的sock路徑),將此項添加值為上宴櫻面回顯中的"/home/mysql/data/mysql.sock":
復制代碼
代碼如下:
;
Default
socket
name
for
local
MySQL
connects.
If
empty,
uses
the
built-in
;
MySQL
defaults.
mysql.default_socket
=
/home/mysql/data/mysql.sock
3、重檔衫啟php。
Ⅳ 編寫php文件, 獲取mysql 資料庫某個表中一條記錄中的指定欄位值。
這個好辦 先接收到你框選的內同 。然後用到資料庫查詢的時候選擇模糊查詢。就像 select *from
'xxx' where title like'%進口 corine%' like 後面的部分都是模糊查詢,這就表示,只要你該段中包含『進口 corine『字眼的就算是查找到結果 ,然後拿到結果集後你再做相應的處理。我說的對不?
Ⅵ php mysql 怎麼同時搜索一個欄位下的多個值
用循環吧
比如,輸入了$str="a,b,c";
$arrs = expode(",",$str);
for($i=1;$i<count($arrs);$i++){
$sql="select * from student where name like ''%'".$arrs[$i]."%'"
$r = mysql_query9$sql);
if($r){
}else{
}
}
不知道你看 明白了沒有。