php中的sql語句
先講下單引號和雙引號的問題
''單引號 php會把它裡面的內容當成字元串來處理。
""雙引號 php會根據裡面的值來處理。比如裡面有變數 那麼變數的值就會把變數替換。
例子
<?php
$a='HelloWord!';
echo'$a';
echo"$a";
//這兩個輸出的結果是不一樣的
//第一個輸出就是$a
//第二個輸出HelloWord!
//資料庫查詢例子:
$username='admin';
$sql="select*fromuserwhereusername='$username'";
{}大括弧也可以但是也得必須是雙引號。但是雙引號直接就當變數解析了。所以加不加{}沒啥用
❷ php中怎樣用sql查訓我的語句是否正確
sql有許多對資料庫操作的語句。但是常見和比較需要的是這么幾個語句 。SELECT 語句用於從資料庫中選取數據。
那麼我們先來介紹第一種 SELECT語句
語句1:SELECT * FROM table_name
解說:意思就是讀取整個表table_name裡面的數據顯示出來語句1:SELECT * FROM table_name Where x = 1解說:意思就是讀取表table_name裡面鍵名為:x 值為:1的 數據顯示出來Select 查詢語句的例子
復制代碼 代碼如下:
<?php
$con = mysql_connect("localhost","peter","abc123");if (!$con)
{
die('Could not connect: ' . mysql_error());}
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM Persons");while($row = mysql_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];echo "<br />";
}
mysql_close($con);
?>
例子
復制代碼 代碼如下:
<?php
define ('HOSTNAME', 'localhost'); //資料庫主機名define ('USERNAME', 'username'); //資料庫用戶名define ('PASSWORD', 'password'); //資料庫用戶登錄密碼define ('DATABASE_NAME', 'testdb'); //需要查詢的資料庫$db = mysql_connect(HOSTNAME, USERNAME, PASSWORD) ordie (mysql_error());
//連接不上,就會顯示mysql出錯的原因。
mysql_select_db(DATABASE_NAME);
//切換到testdb www.*********
$query =
"SELECT uri,title FROM testdb WHERE 1 ORDER by rand() LIMIT 1";//上面這句的意思是從testdb中隨機提取一條數據。
$result = mysql_query($query);
//查詢
while ($row = mysql_fetch_array($result)) { echo "<p id="title">" ,($row['title']) , "</p><p id="uri">–" , nl2br($row['uri']), "</p>"; }
//顯示結果
mysql_free_result($result);
//釋放結果
mysql_close();
//關閉連接
?>
mysql中文數據出現亂碼
資料庫採用UTF8編碼,而頁面申明編碼是GB2312,這是最常見的產生亂碼的原因。這時候在PHP腳本裡面直接SELECT數據出來的就是亂碼,需要在查詢前先使用:
復制代碼 代碼如下:
mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");來設定MYSQL連接編碼,保證頁面申明編碼與這里設定的連接編碼一致(GBK是GB2312的擴展)。如果頁面是UTF-8編碼的話,可以用:
mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如頁面申明的編碼與資料庫內部編碼一致可以不設定連接編碼。
代碼如下:
復制代碼 代碼如下:
$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);mysql_query("SET NAMES 'GBK'");
❸ PHP執行SQL查詢怎麼做
$haha = M(),$res = $haha->query($sql)。
或 $res = $waw->execute($sql)。
$sql中包含了表名,實例化模型時可以為空。注意query是查功能,execute是增刪改功能。
❹ 怎樣在thinkphp裡面執行原生的sql語句
原生SQL查詢有 query() 和 execute() 兩個方法:
query():用於 SQL 查詢操作,並返回符合查詢條件的數據集
execute():更新和寫入數據的 SQL 操作,返回影響的記錄數
publicfunctionread(){
//實例化一個空模型,沒有對應任何數據表
$Dao=M();
//或者使用$Dao=newModel();
$list=$Dao->query("select*fromuserwhereuid<5");
if($list){
$this->assign('list',$list);
$this->display();
}else{
$this->error($Dao->getError());
}
}
publicfunctionread(){
header("Content-Type:text/html;charset=utf-8");
//實例化一個空模型,沒有對應任何數據表
$Dao=M();
//或者使用$Dao=newModel();
$num=$Dao->execute("updateusersetemail='[email protected]'whereuid=3");
if($num){
echo'更新',$num,'條記錄。';
}else{
echo'無記錄更新';
}
}
❺ php批量執行sql語句怎麼寫
php中利用數組用Mysql_query批量執行SQL語句。
參考示例如下:
思路:這里採用一個數組.用explode 函數,將$query語句按照」;」炸開,然後循環執行即可:
$query = 'delete from ecs_goods_attr where attr_id=11 and goods_id=22;
Insert into ecs_goods_attr (goods_attr_id,goods_id,attr_id,attr_value,attr_price)values(Null,33,138,"膽略",0);
update ecs_goods set goods_number=10,shop_price=55 where goods_id=33;'
$query_e = explode(';','$query');
foreach ($query_e as $k =>$v)
{
mysql_query($query_e[$k]);
}
這樣 $query語句就被批量的執行了。
❻ 關於thinkPHP中 foreach 裡面執行sql語句
原生sql查詢有
query()
和
execute()
兩個方法:
query():用於
sql
查詢操作,並返回符合查詢條件的數據集
execute():更新和寫入數據的
sql
操作,返回影響的記錄數
public function read(){
// 實例化一個空模型,沒有對應任何數據表
$ = m();
//或者使用 $ = new model();
$list = $->query("select * from user where uid<5");
if($list){
$this->assign('list', $list );
$this->display();
} else {
$this->error($->geterror());
}
}public function read(){
header("content-type:text/html; charset=utf-8");
// 實例化一個空模型,沒有對應任何數據表
$ = m();
//或者使用 $ = new model();
$num = $->execute("update user set email = '[email protected]' where uid=3");
if($num){
echo '更新 ',$num,' 條記錄。';
}else{
echo '無記錄更新';
}
}
❼ ThinkPHP里怎麼直接執行一句SQL語句 - PHP框架開發
$waw = M();
$res = $waw->query($sql); 或 $res = $waw->execute($sql);
由於$sql中包含了表名,實例化模型時可以為空。
註:query()與execute()是有區別的,不能亂用,詳見ThinkPHP光放手冊驅動擴展部分。
褔遞達