㈠ php mysql_query执行不成功
mysql_query函数执行不成功的几种可能性如下:
没有权限访问查询语句中引用的表
查询的sql语句有语法错误
mysql服务器连接异常
解决方法:
为php连接的用户添加指定的操作权限
改正所有的语法错误
检查mysql服务器是否有问题,如硬件资源耗尽、网络拥塞等
注意:
本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之。
㈡ php使用pdo连接mysql数据库如何设置发送的字符集
和Mysql类里面的用法一样,他们只过不过是我们链接数据库的中间桥梁变了,本质并没有变,还是对数据库进行操作,而操作的要粗行利用SQL语句,所以这里可以用同样的mysql语句即可,只不过执行函数变了!在mysql类里面,我们用mysql_query(“SET NAMES gbk”);设置字模凳缓符集编码为gbk啦!在PDO里面我们旦模用$db->query("SET NAMES gbk");当然也有其他的函数也可以。http://wenku..com/view/57270c36a32d7375a4178002.html这里有网络文库关于PDO的解释和简单使用!
㈢ php 使用pdo对mysql数据库增删改查实例
//连接、查询乎猜
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row) {
print_r($row);
}
$dbh = null;//释放资源
} catch (PDOException $e) {
print "错误!: " . $e->getMessage() . "<br></br>";
die();
}
//执此氏行删除操作,插入、修改与此岁扒型类似,更改SQL语句即可
$count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");
㈣ 在PHP中怎么解决大量数据处理的问题
mysql_query函数查询的方式是查询出全部结果后缓存到内存中,这样就会出现超内存的现象,使用另外一个函数mysql_unbuffered_query可以解决这个问题,mysql_unbuffered_query不会缓存结果集,而是查询出来数据后立马对结果集进行操作,也就是便查询边返回,这样就不会出现超出内存的现象,但是使用mysql_unbuffered_query的是时候不能使用 mysql_num_rows() 和 mysql_data_seek()。并且向 MySQL 发送一条新的 SQL 查询之前,必须提取掉所有未缓存的 SQL 查询所产生的结果行。例如:
使用缓存结果集的代码:
function selecttest()
{
try {
$pdo = new PDO("mysql:host=localhost;dbname=test", 'root', '123456');
// 不使用缓存结果集方式
// $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
$sth = $pdo->prepare('select * from test');
$sth->execute();
echo '最初占用内存大小:' . memory_get_usage() . "\n";
$i = 0;
while ($result = $sth->fetch(PDO::FETCH_ASSOC)) {
$i += 1;
if ($i > 10) {
break;
}
sleep(1);
print_r($result);
echo '占用内存大小:' . memory_get_usage() . "\n";
}
} catch (Exception $e) {
echo $e->getMessage();
}
}
执行时将会报超出内存的错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 204800000 bytes) in E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php on line 56
Call Stack:
0.0005 135392 1. {main}() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:0
0.0005 135568 2. test->selecttest() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:85
0.0050 142528 3. PDOStatement->execute() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:56
将上面代码中的$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);一行的注释去掉后将不在缓存结果集,这时运行该函数的结果如下:
最初占用内存大小:144808
Array
(
[id] => 1
[a] => v
[b] => w
[c] => i
)
占用内存大小:145544
Array
(
[id] => 2
[a] => b
[b] => l
[c] => q
)
占用内存大小:145544
Array
(
[id] => 3
[a] => m
[b] => p
[c] => h
)
占用内存大小:145536
Array
(
[id] => 4
[a] => j
[b] => i
[c] => b
)
占用内存大小:145536
可以看到,这时返回一条数据内存占用非常的小,也就700多字节,这样就不会出现超出内存的错误了。
㈤ PHP如何读取MYSQL数据库的字段内容然后返回该行所有内容
PHP 版本 <= 5.2 的常用连接方法为
$link=mysql_connect('mysql地址/localhost','root','root密码');
mysql_select_db('db1');//选择一个数据库
mysql_query('setnamesutf8');//设置下数据库默认编码,避免写入/读取乱码
$res=mysql_query('select*fromuser');//执行sql语句
$rows=array();
while($row=mysql_fetch_array($res)){
$rows[]=$row;//循环resouce数据得到数组数据集合
}
print_r($rows);//最后一步输出数据列表
PHP 版本 >= 5.3 的常用连接方法为PDO形式,当然也可以使用5.2的连接方法。(PDO需开启 php_pdo_mysql 扩展)
$pdo=newPDO('mysql:host=地址/localhost;dbname=数据库名','root','root密码');
$pdo->exec('setnamesutf8');
$res=$pdo->query('select*fromuser');
$rows=array();
while($row=$res->fetch()){
$rows[]=$row;
}
print_r($rows);
大家学习php途中,建议使用5.3 版本以上以获得更好的php编程体验。
所以推荐pdo形式连接数据库,更安全快速。
㈥ php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
本文实例讲述了php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率。分享给大家供大家参考,具体如下:
<?php
/**
*
测试pdo和mysqli的执行效率
*/
header("Content-type:text/html;charset=utf-8");
//通过pdo链接数据库
$pdo_startTime
=
microtime(true);
$pdo
=
new
PDO("mysql:host=localhost;dbname=test","root","1234",array(PDO::MYSQL_ATTR_INIT_COMMAND
=>
"SET
NAMES'utf8';"));
for($i=1;$i<=100;$i++){
$title
=
"pdo标题".$i;
$content
=
"pdo内容".$i;
$addtime
=
time();
$user_id
=
$i;
$pdo_sql
=
"INSERT
INTO
`article`(`title`,`content`,`addtime`,`user_id`)
VALUES(:title,:content,:addtime,:user_id)";
$sth
=
$pdo->prepare($pdo_sql);
$sth->bindParam(':title',$title);
$sth->bindParam(':content',$content);
$sth->bindParam(':addtime',$addtime);
$sth->bindParam(':user_id',$user_id);
$sth->execute();
}
$pdo_endTime
=
microtime(true);
$pdo_time
=
$pdo_endTime
-
$pdo_startTime;
echo
$pdo_time;
echo
"<hr/>";
//通过mysql链接数据库
$mysqli_startTime
=
microtime(true);
$mysqli
=
mysqli_connect("localhost","root","1234","test")
or
die("数据连接失败");
mysqli_query($mysqli,"set
names
utf8");
for($i=1;$i<=100;$i++){
$title
=
"mysqli标题".$i;
$content
=
"mysqli内容".$i;
$addtime
=
time();
$user_id
=
$i;
$sql
=
"INSERT
INTO
`article`(`title`,`content`,`addtime`,`user_id`)
VALUES('".$title."','".$content."',".$addtime.",".$user_id.")";
mysqli_query($mysqli,$sql);
}
$mysqli_endTime
=
microtime(true);
$mysqli_time
=
$mysqli_endTime
-
$mysqli_startTime;
echo
$mysqli_time;
echo
"<hr/>";
if($pdo_time
>
$mysqli_time){
echo
"pdo的执行时间是mysqli的".round($pdo_time/$mysqli_time)."倍";
}else{
echo
"mysqli的执行时间是pdo的".round($mysqli_time/$pdo_time)."倍";
}
测试结果:其实经过多次测试,pdo和mysqli的执行效率差不多。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例php中数据库连接方式pdo和mysqli对比分析php中关于mysqli和mysql区别的一些知识点分析php操作mysqli(示例代码)php封装的mysqli类完整实例PHP以mysqli方式连接类完整代码实例php简单解析mysqli查询结果的方法(2种方法)php中mysql连接方式PDO使用详解Php中用PDO查询Mysql来避免SQL注入风险的方法php
mysql
PDO
查询操作的实例详解PHP实现PDO的mysql数据库操作类
㈦ Php中的pdo是什么意思啊举个例子指点迷津!
就是操作数据库的方法,
pdo就是把操作数据库的函数封装成一个pdo类,其间做了安全验证而已。
在使用PDO之前首先要设置PHP.INI文件,使PHP支持PDO,因为PHP5默认是不支持的。在PHP安装目录下找到PHP.INI文件,打开并搜索extension=php_pdo.dll 和 extension=php_pdo_mysql.dll,将前面的分号(;)去掉,重启apache即可。
接下来我们就开始写PHP代码了,首先是连接数据库,看下面的例子:
<!--?php
define('DB_NAME', 'pdo_test');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
try {
$DBH = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD);
$DBH--->exec('SET CHARACTER SET '.DB_CHARSET);
$DBH->exec('SET NAMES '.DB_CHARSET);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br>";
die();
}
?>
连接成功后,我们需要对数据库中的数据进行增删改查操作,这里主要用到exec和query两个函数。
示例:
<!--?php
//增加数据
$sql_insert = 'Insert INTO wp_options(blog_id,option_name,option_value,autoload) VALUES (0,'.time().rand(1,100).','.time().rand(1,100).',\'no\')';
$back = $DBH--->exec($sql_insert); //返回 bool 的true or fal
$lastInsertId = $DBH->lastInsertId();
//删除数据
$sql_delete = 'Delete FROM wp_options Where option_id='.$lastInsertId;
$back = $DBH->exec($sql_delete); //返回 bool 的true or fal
$lastInsertId = $DBH->lastInsertId();
//更新数据
$sql_update = 'Update wp_options SET option_name = \''.time().rand(1,100).'\' Where option_id='.$lastInsertId;
$lastUpdateId = $DBH->lastInsertId(); //返回的对应的操作的id
//查询数据
$sql_select = 'Select option_id FROM wp_options orDER BY option_id DESC LIMIT 4 ';
$back = $DBH->query($sql_select); //返回一个对象 这个对象可以用foreach 直接遍历循环 循环的为查询的结果集
$back = $DBH->query($sql_select)->fetch(); //返回一条数据结果 这个对象可以用foreach 直接遍历循环 循环的为查询的结果集
$back = $DBH->query($sql_select)->fetchAll(); //返回一个数组 这个对象可以用foreach 直接遍历循环 循环的为查询的结果集
$back = $DBH->query($sql_select)->fetchColumn(0); //返回一个字段字符串,这个字符串是返回的记录的第一条记录的第一个字段
?>
到这里,PDO的基本操作基本上结束了。对于一般的企业网站,小型的管理系统基本上能满足了,但是,如果我们开发大型网站或者逻辑较复杂的管理系统,仅仅靠数据的读写是远远不够的,我们可能还需要对数据库的存储过程、事务等对象进行操作,下面我们继续看看用PDO是如何实现的。如果还有更多问题可以去后盾网论坛问题求助专区,希望我的回答对你有帮助!