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光放手册驱动扩展部分。
褔递达