小编jon*_*ink的帖子

作为int转换或保留为字符串?

我想知道是否有任何理由将我的变量(从MySQL作为字符串返回)转换为int.我正在更新一些代码,netbeans希望我使用===而不是==.问题是===关注内容和类型一样多.

我有: if($user['user_state']==1){...}

所以我改成它: if($user['user_state']==="1"){...}

或者我可以这样做: if((int)$user['user_state']===1){...}

如果我有一个int或str,它对我没有任何影响.我肯定不会对这个特定的变量做任何数学运算.因为无论如何我都要重写我的条件,我宁愿以正确的方式去做.

所以,我认为我的问题是什么是最佳做法?或者这是一个很好的问题,其答案将结束单身与双引号等幸福婚姻?

php mysqli

6
推荐指数
1
解决办法
92
查看次数

使用 PHP 但不使用命令行的 MySQLdump 空文件?

我正在研究 mysql 的备份脚本。它的一个变体曾经可以工作,但自从 php4 以来我就没有看过它了。它返回一个空文件。奇怪的是,如果我进入命令行并使用完全相同的命令,我会得到我期望的文件。

我在互联网上查了一下,找不到任何东西……有什么想法吗?

代码不好?

$db_host='localhost';
$db_user='root';
$db_pass='root';
$db_name='gakkou';
$dir='backups';
$file_list=scandir($dir);
if(count($file_list)>10) unlink($dir.'/'.$file_list[2]); //delete old file
$prefix=date("YmdHi").'_';
$command='mysqldump -u'.$db_user.' --password="'.$db_pass.'" --databases '.$db_name.' | gzip > '.$dir.'/'.$prefix.'_backup.sql.gzip';
exec($command,$output,$return_val);
Run Code Online (Sandbox Code Playgroud)

这工作得很好:mysqldump -uroot -proot -hlocalhost gakkou > /webdocs/gakkou/backups/mysql_backup.sql它与 php 文件执行的命令完全相同(文件名除外)。

编辑:为任何感兴趣的人更新工作代码。事实证明这是两个不同的问题。使用 MAMP,我需要指定路径/Applications/MAMP/Library/bin/mysqldump。然后在生产服务器上,疯狂的密码搞砸了工作。

php mysql

3
推荐指数
1
解决办法
3164
查看次数

是=!一个声明,这就是为什么这个交替的条件有效?

我有一个可怕的认罪.我一直在使用以下的变体.

for($x=0;10>$x;++$x){
    echo '<li style="color:#'.(($c=!$c)? "fff":"eee").'">example $x</li>";
}
Run Code Online (Sandbox Code Playgroud)

我的困境是我不完全理解它是如何运作的.我知道$ c =!$ c使三元条件交替,但我不明白如何.谷歌搜索"php =!" 并且喜欢没有任何帮助(鉴于查询没有惊喜).

!=是一个运算符,但这使用=!

这是三元条件声明吗?如果是这样,这个怎么样?我理解一般的条件声明,但不是这个...假设它甚至是一个.

任何答案或文档链接将不胜感激.

php

1
推荐指数
1
解决办法
38
查看次数

标签 统计

php ×3

mysql ×1

mysqli ×1