-
PHP 字符串一个字符串是一串字符的序列,就像 "Hello world!"。你可以将任何文本放在单引号和双引号中:实例<?php $x = "Hello world!";echo $x;echo "<br>"; $x = 'Hello world!';echo $x;?>尝试一下 »PHP 整型整数是一个没有小数的数字。整数规则:整数必须至少有一个数字 (0-9)整数不能包含逗号或空格整数是没有小数点的整数可以是正数或负数整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。在以下实例中我们将测试不同的数字。PHP var_dump() 函数返回变量的数据类型和值:实例<?php $x = 5985;var_dump($x);echo "<br>"; $x = -345; // 负数 var_dump($x);echo "<br>"; $x = 0x8C; // 十六进制数var_dump($x);echo "<br>";$x = 047; // 八进制数var_dump($x);?>尝试一下 »PHP 浮点型浮点数是带小数部分的数字,或是指数形式。在以下实例中我们将测试不同的数字。 PHP var_dump() 函数返回变量的数据类型和值:实例<?php $x = 10.365;var_dump($x);echo "<br>"; $x = 2.4e3;var_dump($x);echo "<br>"; $x = 8E-5;var_dump($x);?>尝试一下 »PHP 布尔型布尔型可以是 TRUE 或 FALSE。$x=true;$y=false;布尔型通常用于条件判断。在接下来的章节中你会学到更多关于条件控制的教程。PHP 数组数组可以在一个变量中存储多个值。在以下实例中创建了一个数组, 然后使用 PHP var_dump() 函数返回数组的数据类型和值:实例<?php $cars=array("Volvo","BMW","Toyota");var_dump($cars);?>尝试一下 »在接下来的章节中你将学到更多关于数组的知识。PHP 对象对象数据类型也可以用于存储数据。在 PHP 中,对象必须声明。首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:实例<?phpclass Car{ var $color; function __construct($color="green") { $this->color = $color; } function what_color() { return $this->color; }}?>尝试一下 »以上实例中PHP关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。你将会在接下来的章节中学会更多关于对象的知识。PHP NULL 值NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。可以通过设置变量值为 NULL 来清空变量数据:实例<?php$x="Hello world!";$x=null;var_dump($x);?>
-
1、使用unset()函数可以用于取消设置关联数组中的键及其值。// 声明关联数组$arr = array( "1" => "加", "2" => "减", "3" => "乘", "4" => "除");// 关联数组中删除键1及其值unset($arr['1']);// 显示数组元素var_dump($arr);2、使用array_diff_key()函数用于获取一个或多个数组之间的差集。此函数比较一个或多个数组之间的键并返回它们之间的差集。// 声明关联数组$arr = array( "1" => "春", "2" => "夏", "3" => "秋", "4" => "冬",);// 从关联数组中删除键1及其值$result = array_diff_key($arr, array_flip((array) ['1']));// 显示数组元素var_dump($result);内容扩展:函数介绍array_values() 函数返回包含数组中所有的值的数组。注意:被返回的数组将使用数值键,从 0 开始且以 1 递增。语法array_values(array)参数说明array 必需。规定数组。代码实现:$arr = array('key1'=>'value1','key2'=>'value2','key3'=>'value3');$arr2 = array_values($arr);print_r($arr2);?>
-
各位开发者好,以下为最终统计的完成1天打卡开发者名单(也可下载附件查看)公示期:7月22日-7月27日码豆已发放,每人500码豆,请各位开发者去会员中心查看。https://devcloud.huaweicloud.com/bonususer/home/converge以下用户可能因改过华为云账号,导致发放失败,请于8月4日前联系群内小助手解决,逾期视作放弃哦,谢谢Leroy26傲曳人都怪好看长腿企鹅苏打气泡水奖励说明:我们会在公示期结束后对所有完成1天打卡用户进行奖励。(必须完成第1天打卡)奖品每人500码豆,发放上限20w码豆,前400人将会得到奖励。为了确保您顺利获得码豆,请先点击下方链接登录一次会员中心。https://devcloud.huaweicloud.com/bonususer/home/converge问题反馈说明:因本次活动部分开发者没有按照要求的格式打卡或者中途改过账号/昵称,所以有可能有遗漏,如有问题请开发者先不要激动,请联系群内小助手核实,超过公示期不再进行名单修改。望周知!!!小助手二维码:完成1天打卡名单(必须完成第1天打卡)昵称滴滴12138khg305387543Epoch.永恒的传说小航kiosko加油O幸福xltv哈哈哈菜呢kricoladu鸿琉米光量子Jack20雨幕杏仁yue石榴楠黄伟欢测试人员001cnfox0273是慢慢啊北冰洋.xiaobin8325咚咚咚咚咚咚caibyanyd_213994579是77呀!Sogoodeholo.yhlevi_viDevFeng叶辉sumingweb邓亮jill.mapan王者不在RPA学习交流感到MxA小灰灰1314hw0224张辉小小啦啦crazy_ljy是安可啊湬黍丧心病狂的雷克斯大人Olim1026笨笨2020蓝色橡树BK07idbaf_大掌柜yangfei91轩-x考过IE励志当攻城狮vlean01好久没出门yd_216885343喜悦温暖平静xssl0518没想好叫什么那李熙然yd_251873816繁依FanyiZootopiahw53863158yxshuibizi丹丹周多米诺的古牌zhangbo风路01谢家三少zekeloveGodLIke小影的旅途cupidhwmr0ya1_HUCHIAhhhhhF.T.Dwakaka_huawei随便到无语Bosx腾腾腾飞H、yd_278050186bluua1ALLEN-ZAniaArchive胜林hw58720111老码农mufengyaKatharine_X柚子皮啊likuannatieburg魔芋结阿弥陀佛KarryCould千江有水千江月hw43624871jinghenghengSdll黄狗狗真蒸汽鸿钧三清CarinaM壹贰叁martinzhuwangzunValenCheng胡琦lyz0699清风2打卡作业 Eon.gavinhall小小2018傻徒弟哦Mietteinhuawei禄仁恝lwq1228boxulinxuejiaHealsko慵懒ftbjlhappy00huangwt2010zxcjyd_77520685yd_219973012ypmilyLeon廖梦浩Jun昭小NNHelmondM_Taoboyce什么名字gerayhunkarcyongHello Diggeryd_290241179stylitewalkwiki打卡,学习Noipmahcfanny1210李子木蜡笔不辣吃的TenTwogltzglalan97zhaolann云中新秀HB1688ss_1122BCSmart腾foreverlightmocmocjxy小馨leilei123hw21591385Richard_zhangjianklompenlzqzmtsuiw7k神雷神VeryYoung孙小北赞赞赞赞赞%%yd_272618976anselmiao若无心迷糊zhoujiesesG-washingtonctabaabbzz爹Neil_Z打卡day1user_beifengJaneConanJk.Theseus阿媛yywuyicom魔芋666尛马kokolinpenguin_xiacyber-pix杨中敏Ethin傲曳人路人甲乙长腿企鹅专念阿弥陀佛小小火都怪好看wei生道wolfandy星斗苍凉bahoo陈家老五lu_zhishenLynnWangnukinsano0龙龙0odetaarray_linseewo小鲜wujiejieRayel路明军yujingv龙腾虎跃12138Nemo Nobody打哈哈hw47716223Lorna Houyd_259650523John2021Robin唔系肉饼Bryce_lxgeyeeUFO2021RPA_Zoe宛若溪流风火轮晴空1Leroy26zilongVian_1109快乐的苹果KenLiang荠菜L606有闲王员外sam2020tt动力推动咚咚锵nszb85200515Lychi清吾zzsfreedomzzp0617秦武亮0太过极端roger.lin望尽天涯路蓝瘦的蜕变hid_briem62bqmfdx9t超人1carl peng頭文字Cwebclubcode edgewwwinston风晴月resoundMingzyxucp醉卧独钓wayneleewang黄生花溪HouzRabbitCloud不会写代码的开发jikyousmilepkoray布拉没有格lihuan2008a苏打气泡水yzxcode edge
-
我们首先来了解下什么是上下文。在我们写文章,写句子时,都会考虑一个观点或者内容的前后逻辑,转承启合,而在这个观点前后的内容就可以看成是它的上下文内容。它包含了语境的意味在里面,其实代码世界中的上下文也是一样的意思,本身 Context 这个单词就是环境、背景的意思。接下来,我们来说说请求上下文又是什么呢?比如说我们要使用PHP来请求一个链接地址,通常我们会使用 curl 来进行请求,但是 curl 的配置其实是比较复杂的,所以我们在简单使用的情况下会使用 file_get_contents() 这种函数来快捷地请求链接。不过,可能很多人并不知道或者说没怎么使用过它的上下文参数。其实,使用了上下文参数之后,file_get_contents() 不仅可以提交 POST 请求,还可以定义各种请求头内容。这些东西,就是一个请求的上下文,也就是它的执行环境和背景。首先,我们定义一个服务端,在这里只是输出 \_GET 和 和_POST 里面的内容。同时,我们还打印了 $_SERVER 来看看请求头是否获取到了。123456789101112print_r($_SERVER); echo 'GET INFO', PHP_EOL;foreach ($_GET as $k => $v) { echo $k, ': ', $v, PHP_EOL;} echo PHP_EOL,PHP_EOL;echo 'POST INFO', PHP_EOL;foreach ($_POST as $k => $v) { echo $k, ': ', $v, PHP_EOL;}接下来,在我们的测试代码中,使用 file_get_contents() 来进行 POST 提交。12345678910111213141516171819$postdata = http_build_query( [ 'var1' => 'some content', 'var2' => 'doh', ]); $opts = [ 'http' => [ 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata, ],]; $context = stream_context_create($opts);$result = file_get_contents('http://localhost:8088/?a=1', false, $context);print_r($result);var_dump($http_response_header);在这里,我们只是用到了 stream_context_create() ,就能够轻松地创建一个请求的上下文环境了。stream_context_create() 是创建上下文环境的函数,它接收的参数是一个选项数组,里面用于定义当前请求的相关选项。注意,我们这里其实定义的是 http/https 相关的选项,它还可以定义 ftp 、 socket 等相关的请求协议选项。在使用 file_get_contents() 函数请求远程地址后,我们可以在 $http_response_header 变量内获取到请求返回的响应头信息。而且这个变量是会定义在当前的局部作用域下,不用担心全局作用域污染的问题。非常简单的方式就可以实现 POST 请求了吧,另外我们还可以使用 fopen() 函数来实现类似的效果,不过获取 body 和响应应信息时的方式就不同了。12345678910111213141516171819$url = "http://localhost:8088/?a=1"; $opts = [ 'http' => [ 'method' => 'GET', 'max_redirects' => '0', 'ignore_errors' => '1', ],]; $context = stream_context_create($opts);$stream = fopen($url, 'r', false, $context); // 返回响应头var_dump(stream_get_meta_data($stream)); // 返回内容var_dump(stream_get_contents($stream));fclose($stream);在这段代码中,我们使用 stream_get_meta_data() 函数来获得响应头,使用 stream_get_contents() 来获得响应的内容(body)。这样其实就真的和 curl 的效果差不多了,而且最主要的是,当前这种写法更简单方便。
-
什么是引用?在 PHP 中引用意味着用不同的名字访问同一个变量内容。它不是C的指针,保存的并不是内存地址,无法进行指针运算。引用只是符号表的别名。就像 Unix 系统中的硬链接, Windows 系统中的快捷方式。上面是官方手册中的原文,怎么说呢,引用其实和我们印象中的C里面的指针并不是相同的概念。指针是针对真实内存的操作,引用是针对指向这个内存的符号表的操作。还是从操作系统的快捷方式来说,快捷方式是可以删的,这就是PHP的引用。而C不仅删了快捷方式,还把原文件也给删了,这就是C的指针操作。// 引用不是指针 $a = 1; $b = &$a; echo $a, '===', $b, PHP_EOL; unset($b); echo $a, '===', $b, PHP_EOL;上面的代码是在PHP中,我们把b变量指向b变量指向a,作为a的引用变量。然后删除a的引用变量。然后删除b,对$a没有任何影响。#include <stdio.h> #include <stdlib.h> int main() { // C 中的指针和引用 int a = 1; int* b = &a; printf("%i\n", a); // 1 free(b); // free b printf("%i\n", a); //get error: *** error for object 0x7fff6350da08: pointer being freed was not allocated return 0; }而C中的引用指针就不行了,我们把b变量删掉后,再打印a变量就直接报错了。虽然说PHP的底层也是C写得,但我们都知道C中的指针是出了名的变态,没有一定的功底非常容易出错。所以PHP的开发者没有暴露C的原始指针能力,而是采用了和Java之类的类似的引用能力。这也是现代语言的特性,不需要我们过多的关注过于底层的能力,而将更多的时间放在业务实现上。引用在数组和对象中的使用如果具有引用的数组被拷贝,其值不会解除引用。对于数组传值给函数也是如此。$arr1 = ["a", "b"]; $t1 = &$arr1[1]; $arr2 = $arr1; $arr2[1] = "c"; var_dump($arr1); // array(2) { // [0]=> // string(1) "a" // [1]=> // &string(1) "c" // } $arr1 = ["a", "b"]; $t1 = &$arr1[1]; unset($t1); // unset 掉引用 $arr2 = $arr1; $arr2[1] = "c"; var_dump($arr1); // array(2) { // [0]=> // string(1) "a" // [1]=> // string(1) "b" // }这个其实挺有意思的,我们对比这两个例子可以看出一个问题,t变量指向t变量指向arr[1]的引用。arr2直接=这个arr2直接=这个arr1,没有使用引用,然后arr2修改了arr2修改了arr2[1]的内容,arr1相应的内容也发生了改变,如果unset掉arr1相应的内容也发生了改变,如果unset掉t变量,则$arr1相应的内容就不会发生改变。对此,我在文档中找到了下面的解释:由于PHP内部工作的特殊性,如果对数组的单个元素进行引用,然后复制数组,无论是通过赋值还是通过函数调用中的值传递,都会将引用复制为数组的一部分。这意味着对任一数组中任何此类元素的更改都将在另一个数组(和其他引用中)中重复,即使数组具有不同的作用域(例如,一个是函数内部的参数,另一个是全局的)!在复制时没有引用的元素,以及在复制数组后分配给其他元素的引用,将正常工作(即独立于其他数组)。不仅仅是数组,对象的引用也会有一些好玩的问题。$o1 = new stdClass(); $o1->a = 'a'; var_dump($o1); // object(stdClass)#1 (1) { // ["a"]=> // string(1) "a" // } $o2 = &$o1; $o3 = $o1; $o2->a = 'aa'; var_dump($o1); // object(stdClass)#1 (1) { // ["a"]=> // string(2) "aa" // } var_dump($o3); // $o2修改了$a为'aa',$o3也变成了'aa' // object(stdClass)#1 (1) { // ["a"]=> // string(2) "aa" // } $o1->a = 'aaa'; $o1 = null; var_dump($o2); // $o2引用变成了null // NULL var_dump($o3); // $o3不仅引用还存在,并且$a变成了'aaa' // object(stdClass)#1 (1) { // ["a"]=> // string(3) "aaa" // }上面例子中有三个对象,o1、o1、o2、o3,其中,o3,其中,o2是对o1的引用,o1的引用,o3是直接赋值为o1。对o1。对o2属性的操作不仅会反映在o1中,也会反映到o1中,也会反映到o3中。其实我们之前专门有一篇文章就讲的这个问题,首先对象默认赋值就是引用,其次这个例子很好地证明了引用就是一个符号表的绑定。删除了快捷方式对原始对象和其他快捷方式没有任何影响。引用的传递关于引用在方法参数上的传递,最重要的是记住两点:一是方法内部修改了变量外部也会变,这是引用的特性嘛;二是只能传递变量、New 语句、从函数中返回的引用三种类型。error_reporting(E_ALL); function foo(&$var) { $var++; echo 'foo:', $var; } function bar() // Note the missing & { $a = 5; return $a; } foo(bar()); // 自 PHP 5.0.5 起导致致命错误,自 PHP 5.1.1 起导致严格模式错误 // 自 PHP 7.0 起导致 notice 信息,Notice: Only variables should be passed by reference foo($a = 5); // 表达式,不是变量, Notice: Only variables should be passed by reference // foo(5); // 导致致命错误 !5是个常量! /////////////////////////////// // 正确的传递类型 $a = 5; foo($a); // 变量 function &baz() { $a = 5; return $a; } foo(baz()); // 从函数中返回的引用 function foo1(&$var) { print_r($var); } foo1(new stdClass()); // new 表达式引用的返回引用的返回并不是经常使用的一个能力。文档中的原文是:不要用返回引用来增加性能,引擎足够聪明来自己进行优化。仅在有合理的技术原因时才返回引用!$a = 1; function &test(){ global $a; return $a; } $b = &test($a); $b = 2; echo $a, PHP_EOL;当你想要返回一个引用变量的时候,一定要给方法定义和方法调用的时候都使用&符号。这个是需要注意的点。当其他地方修改原本的变量值或者返回的变量值经过修改后,都会影响到所有调用这个值的地方。所以说,引用的返回是比较危险的,因为你不清楚什么时候在什么地方这个值可能发生了修改,对于bug的排查会非常困难。引用的取消取消引用其实就是直接unset掉变量就可以了。但是一定要记住,PHP中的引用是指向的符号表,对原始真实的值是不起作用的,所以即使unset掉了最原始的那个变量,对其它引用赋值的变量也不会有影响!!$a = 1; $b = &$a; $c = &$b; $b = 2; echo '定义引用后:', $a, '===', $b, '===', $c, PHP_EOL; unset($b); $b = 3; echo '取消$b的引用,不影响$a、$c:', $a, '===', $b, '===', $c, PHP_EOL; $b = &$a; unset($a); echo '取消$a,不影响$b、$c:', $a, '===', $b, '===', $c, PHP_EOL; // 定义引用后:2===2===2 // 取消$b的引用:2===3===2 // 取消$a,不影响$c:===3===2 $a = 1; $b = & $a; $c = & $b; // $a, $b, $c reference the same content '1' $a = NULL; // All variables $a, $b or $c are unset echo '所有引用成空:', $a, '===', $b, '===', $c, PHP_EOL;
-
在OBS怎么使用PHP判断对象是否存在?
-
已经完成openEluer、openGuass、ODBC、PHP的安装与配置。直接通过命令行的方式执行PHP脚本可以获取数据。通过浏览器访问时出现错误,内容如下:Fatal error: Uncaught PDOException: SQLSTATE[01000] SQLDriverConnect: 0 [unixODBC][Driver Manager]Can't open lib '/usr/local/lib/psqlodbcw.so' : file not found in /var/www/html/index1.php:3 Stack trace: #0 /var/www/html/index1.php(3): PDO->__construct('odbc:Driver={Ga...', 'monitor', 'pwd@1212') #1 {main} thrown in /var/www/html/index1.php on line 3请帮忙看看吧,谢谢!!!
-
1、安装PHP在openEuler上是可以用yum install 安装PHP 以及php-fpm的,这里还需要安装php-devel,后面会用到yum install php php-fpm php-devel安装完成之后,我们查看当前php自带的扩展包php -m2、安装imagick扩展下载源码wget http://pecl.php.net/get/imagick-3.4.3.tgz解压安装tar -xzvf imagick-3.4.3.tgz cd imagick-3.4.3 phpize ./configure make && make install安装完成后,会打印出安装的路径,到路径下看一下,是否以及存在so文件更改php.ini加入so文件vi /etc/php.ini在末尾加入extension = imagick.so重启php,查看扩展包service php-fpm restart可以看到扩展包已经成功安装3、安装redis扩展安装redis扩展需要先安装json扩展,直接yum 安装即可 yum install php-json下载源码wget https://pecl.php.net/get/redis-5.0.0.tgz解压安装,与上面类似tar -xzvf redis-5.0.0.tgz cd redis-5.0.0 phpize ./configure make && make install安装完成后查看so文件是否存在更改php.ini加入so文件vi /etc/php.ini在末尾加入,这里要注意,一定要把json放在redis前面,否则会报错extension = json extension = redis.so重启php,查看扩展包service php-fpm restartok了!
-
1. 封装MongoDB类<?php class MongoDB { private $database; private $mongo; function __construct() { $this->mongo = new MongoClient("mongodb://user:password@server_address:port/admin"); $this->database = $this->mongo->selectDB("data"); } { return $this->database->selectCollection($collection); } //获取所有的集合名 function getCollections() { return $this->database->getCollectionNames(); } //选数据库 function selectDB($db) { $this->database = $this->mongo->selectDB($db); } } 2. 简单调用,insert数据。class DemoController extends CI_Controller { function __construct() { parent::__construct(); //CI中加载类 $this->load->library('mongo_lib', '', 'mongodb'); } //插入一条数据 function create() { $data = array('name'=>'mike','email'=>'abc@163.com); //选择库,shell:user demo_db $this->mongodb->selectDB('demo_db'); //选择集合,db.demo_col.insert(); $rebateCollection = $this->mongodb->getCollection('demo_collection'); $res = $rebateCollection->insert($data); } }
-
Mysqli是php5之后才有的功能,没有开启扩展的朋友可以打开您的php.ini的配置文件。查找下面的语句:;extension=php_mysqli.dll将其修改为:extension=php_mysqli.dll即可。相对于mysql有很多新的特性和优势(1)支持本地绑定、准备(prepare)等语法(2)执行sql语句的错误代码(3)同时执行多个sql(4)另外提供了面向对象的调用接口的方法。下面一一用php实例进行mysqli数据库连接!使用方法一:使用传统的面向过程的方法php代码如下: <?php $connect = mysqli_connect('localhost','root','','volunteer') or die('Unale to connect'); $sql = "select * from vol_msg"; $result = mysqli_query($connect,$sql); while($row = mysqli_fetch_row($result)){ echo $row[0]; } ?> 使用方法二:使用面向对象的方法调用接口(推荐使用)看php代码如下: <?php //创建对象并打开连接,最后一个参数是选择的数据库名称 $mysqli = new mysqli('localhost','root','','volunteer'); //检查连接是否成功 if (mysqli_connect_errno()){ //注意mysqli_connect_error()新特性 die('Unable to connect!'). mysqli_connect_error(); } $sql = "select * from vol_msg"; //执行sql语句,完全面向对象的 $result = $mysqli->query($sql); while($row = $result->fetch_array()){ echo $row[0]; } ?> 以上两个php实例运行的结果完全相同,可以清楚的看到使用mysqli类对象构建数据库连接的优势!
-
实例: <?php $conn1 = mysql_connect("127.0.0.1", "root","root","db1"); mysql_select_db("db1", $conn1); $conn2 = mysql_connect("127.0.0.1", "root","root","db2"); mysql_select_db("db2", $conn2); $sql = "select * from ip"; $query = mysql_query($sql); if($row = mysql_fetch_array($query)) echo $row[0]."\n"; $sql = "select * from web "; $query = mysql_query($sql); if($row = mysql_fetch_array($query)) echo $row[0]; ?> 这段代码存在问题,在程序执行时会报错:PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in ....原因分析:程序开始建立两个数据库链接,函数mysql_query()原型:resource mysql_query ( string $query [, resource $link_identifier ] )向与指定的连接标识符关联的服务器中的当前活动数据库发送一条查询。如果没有指定 link_identifier,则使用上一个打开的连接。如果没有打开的连接,本函数会尝试无参数调用 mysql_connect() 函数来建立一个连接并使用之。查询结果会被缓存。在本例中由于没有指定link_identifier,所以,在执行第一条sql时,默认使用的是上一个打开的链接,即$conn2,而实际上第一条sql语句应该使用的是$conn1,所以导致报错,所以为了能够链接多个mysql数据库,可以使用如下方法:方法1:在mysql_query函数中指定所用连接,即: <?php $conn1 = mysql_connect("127.0.0.1", "root","root","db1"); mysql_select_db("Muma", $conn1); $conn2 = mysql_connect("127.0.0.1", "root","root","db2"); mysql_select_db("product", $conn2); $sql = "select * from ip"; $query = mysql_query($sql,$conn1); //添加连接$conn1 if($row = mysql_fetch_array($query)) echo $row[0]."\n"; $sql = "select * from web "; $query = mysql_query($sql, $conn2); if($row = mysql_fetch_array($query)) echo $row[0]; ?> 方法2:在sql语句中关联所用数据库,此时可以省略mysql_query的第二个参数,即: <?php $conn1 = mysql_connect("127.0.0.1", "root","root","db1"); mysql_select_db("db1", $conn1); $conn2 = mysql_connect("127.0.0.1", "root","root","db2"); mysql_select_db("db2", $conn2); $sql = "select * from db1.ip"; //关联数据库 $query = mysql_query($sql); if($row = mysql_fetch_array($query)) echo $row[0]."\n"; $sql = "select * from db2.web "; $query = mysql_query($sql); if($row = mysql_fetch_array($query)) echo $row[0]; ?>
-
【功能模块】【php插件】缺少以下插件php-imapphp-pearphp-pecl-redisphp-pecl-igbinary【操作步骤&问题现象】1、dnf 官方源安装:[root@hw-kp ~]# dnf install --allowerasing --nobest --skip-broken php-embedded php-ldap php-pdo php-process php-cli php-devel php-fpm php-imap php-mbstring php-opcache php-pear php-pecl-redis php-snmp php-xml php-gd php-common php-mysqlnd php-pecl-igbinary php-soap -yLast metadata expiration check: 0:09:10 ago on Tue 13 Apr 2021 04:34:37 PM CST.Package php-embedded-7.2.10-3.oe1.aarch64 is already installed.Package php-ldap-7.2.10-3.oe1.aarch64 is already installed.Package php-pdo-7.2.10-3.oe1.aarch64 is already installed.Package php-process-7.2.10-3.oe1.aarch64 is already installed.Package php-cli-7.2.10-3.oe1.aarch64 is already installed.Package php-devel-7.2.10-3.oe1.aarch64 is already installed.Package php-fpm-7.2.10-3.oe1.aarch64 is already installed.No match for argument: php-imapPackage php-mbstring-7.2.10-3.oe1.aarch64 is already installed.Package php-opcache-7.2.10-3.oe1.aarch64 is already installed.No match for argument: php-pearNo match for argument: php-pecl-redisPackage php-snmp-7.2.10-3.oe1.aarch64 is already installed.Package php-xml-7.2.10-3.oe1.aarch64 is already installed.Package php-gd-7.2.10-3.oe1.aarch64 is already installed.Package php-common-7.2.10-3.oe1.aarch64 is already installed.Package php-mysqlnd-7.2.10-3.oe1.aarch64 is already installed.No match for argument: php-pecl-igbinaryPackage php-soap-7.2.10-3.oe1.aarch64 is already installed.Dependencies resolved.Nothing to do.Complete!2、以下为官方 yum 源:[root@hw-kp ~]# cat /etc/yum.repos.d/openEuler_aarch64.repo#generic-repos is licensed under the Mulan PSL v2.#You can use this software according to the terms and conditions of the Mulan PSL v2.#You may obtain a copy of Mulan PSL v2 at:# http://license.coscl.org.cn/MulanPSL2#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR#PURPOSE.#See the Mulan PSL v2 for more details.[OS]name=OSbaseurl=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/OS/$basearch/enabled=1gpgcheck=1gpgkey=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler[everything]name=everythingbaseurl=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/everything/$basearch/enabled=1gpgcheck=1gpgkey=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler[EPOL]name=EPOLbaseurl=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/EPOL/$basearch/enabled=1gpgcheck=1gpgkey=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler[debuginfo]name=debuginfobaseurl=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/debuginfo/$basearch/enabled=1gpgcheck=1gpgkey=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler[source]name=sourcebaseurl=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/source/enabled=1gpgcheck=1gpgkey=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/source/RPM-GPG-KEY-openEuler[update]name=updatebaseurl=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/update/$basearch/enabled=0gpgcheck=1gpgkey=http://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler【截图信息】【日志信息】(可选,上传日志内容或者附件)
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签