小编Shi*_*Shi的帖子

用PHP替换\ r \n

我有一个帖子表单,它将我的文本插入MySQL数据库.

我用

$post_text = mysql_real_escape_string(htmlspecialchars($_POST['text']));
Run Code Online (Sandbox Code Playgroud)

并想要替换\r\n自动添加的内容.

我试过了

$text = str_replace('\\r\\n','', $text);
$text = str_replace('\r\n','', $text);
$text = str_replace('\\R\\N','', $text);
$text = str_replace('\R\N','', $text);
$text = str_replace('/\r\\n','', $text);
$text = str_replace('/r/n','', $text);
$text = str_replace('/\R\\N','', $text);
$text = str_replace('/R/N','', $text);
Run Code Online (Sandbox Code Playgroud)

\r\n始终包含在我的数据库条目中.

我怎样才能解决这个问题?

php mysql replace insert

34
推荐指数
3
解决办法
6万
查看次数

PHP PDO :: bindParam()数据类型..它是如何工作的?

我想知道bindParam()(或bindValue())中的数据类型声明用于...

我的意思是,我认为如果我定义一个整数参数(PDO::PARAM_INT),必须将参数转换为整数,类似于

$delete->bindParam(1, $kill, PDO::PARAM_INT);
// should work like
$delete->bindParam(1, (int)$kill);
Run Code Online (Sandbox Code Playgroud)

或者如果参数不是声明的类型,至少抛出一个错误.但这种情况并非如此.

谷歌搜索,我发现在php.net档案:

大家好,

我目前正在研究PDO.正好在bindParam()函数上.第三个参数data_type似乎在这里强制值的类型?但是当我尝试:

$sql = "INSERT INTO produit (idproduit, nom, marque) VALUES (NULL, :nom, :marque)";
$stmt = $dbh->prepare($sql);
$nom = 'Testarossa'; $marque = 'Ferrari' ;
$stmt->BindValue(':marque',$marque) ;
$stmt->BindParam(':nom',$nom,PDO::PARAM_INT) ;

$stmt->execute(); $nom = '250 GTO' ;
$stmt->execute(); ?>
Run Code Online (Sandbox Code Playgroud)

我希望在我的数据库中有PHP错误或整数.但在我的数据库中我有:

22 Testarossa Ferrari 23 250 GTO法拉利

这意味着如果我有第三个参数,它不会改变.或许我想念一些东西.有人能容忍我吗?或者只是有人告诉我在哪里可以找到有关它的信息.

问候,

Cyruss

这正是我的情况.我的想法出了什么问题?

php pdo types prepared-statement

30
推荐指数
3
解决办法
2万
查看次数

使用PDO设置连接超时

我正在使用PDO从SQL服务器上获取数据.后来我发现是这样的:如果SQL服务器不可用,它需要真正的(相对)长此代码返回一个例外:

try {
  $handle = new PDO($db_type . ':host='.$db_host.';dbname='.$db_name,$db_user,$db_pass);
  // Tried using PDO::setAttribute and PDO::ATTR_TIMEOUT here
} catch(PDOException $e) {
  echo $e->getMessage;
}
Run Code Online (Sandbox Code Playgroud)

在MySQL的情况下,发生异常只需要2分钟(SQLSTATE [HY000] [2003]无法连接到MySQL服务器......)和PostgreSQL上的30秒(SQLSTATE [08006] [7]超时到期).

我尝试使用PDO :: setAttribute和PDO :: ATTR_TIMEOUT,但它不起作用.我认为这是有道理的,因为问题发生在这个陈述之前.

有没有办法设置连接到DB的超时?对于PDO而言,2分30秒对我来说似乎很长时间才意识到那里什么也没有.

我想我看到这是在某个地方完成的,但在我的生活中再也找不到它.

php mysql postgresql pdo

28
推荐指数
2
解决办法
4万
查看次数

目录列表在FileZilla中失败

我正在尝试使用Filezilla连接到FTP服务器.当我使用宽带时,它正在工作,但当我使用我的大学互联网时,它说:

Error:  Connection timed out
Error:  Failed to retrieve directory listing
Run Code Online (Sandbox Code Playgroud)

我尝试了被动和主动模式,但都是徒劳的.它连接但无法提供目录列表.

以下是活动模式的完整日志

Status: Resolving address of where2service.com
Status: Connecting to 166.62.2.1:21...
Status: Connection established, waiting for welcome message...
Response:   220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
Response:   220-You are user number 22 of 500 allowed.
Response:   220-Local time is now 05:09. Server port: 21.
Response:   220-This is a private system - No anonymous login
Response:   220 You will be disconnected after 3 minutes of inactivity.
Command:    USER where2service
Response: …
Run Code Online (Sandbox Code Playgroud)

ftp filezilla

22
推荐指数
5
解决办法
7万
查看次数

PHP NumberFormatter和Currency,无法设置精度

我想在使用带货币的NumberFormatter PHP类(来自Intl扩展名)时设置精度为0 .但是我得到了一些奇怪的结果.这里:

$numberFormatter = new NumberFormatter('en-US', NumberFormatter::CURRENCY);
$numberFormatter->setAttribute(NumberFormatter::FRACTION_DIGITS, 0);

echo $numberFormatter->formatCurrency('45', 'USD');
Run Code Online (Sandbox Code Playgroud)

它输出$45,这是我想要的.但是,如果我EUR使用相同的设置更改货币:

echo $numberFormatter->formatCurrency('45', 'EUR');
Run Code Online (Sandbox Code Playgroud)

它输出€45.00(虽然我明确地设置为零精度).

更奇怪的是,如果我将语言环境设置为fr-FR,它会按预期输出数字:

$numberFormatter = new NumberFormatter('fr-FR', NumberFormatter::CURRENCY);
$numberFormatter->setAttribute(NumberFormatter::FRACTION_DIGITS, 0);

echo $numberFormatter->formatCurrency('45', 'EUR');
Run Code Online (Sandbox Code Playgroud)

它输出45 €.

这是一个错误吗?

php numberformatter intl

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

PHP版本升级5.3.25到5.6

我们要求将PHP版本(5.3.25)升级到当前的稳定版本5.6.17.因此,为此我们需要找到哪种方法最好.

  1. 一步一步的方法,我们可以从5.3.X升级到5.4.X,5.4.X升级到5.5.X等等.
  2. 直接升级,在此我们将直接从5.3.X升级到5.6.X.

除了升级之外,在执行此操作时我们应该记住所有事情.

如果您有任何我们可以参考的文件,那将是件好事.

php upgrade php-5.6

15
推荐指数
2
解决办法
3万
查看次数

当我锁定iPhone时Javascript停止,它仍然可以运行吗?

有没有办法告诉javascript函数即使手机被锁定也能继续运行?

几乎我有一个计时器,我需要继续运行,即使手机设置为空闲.

javascript iphone

14
推荐指数
2
解决办法
1万
查看次数

使用phpseclib时出现"分段错误"

我从http://phpseclib.sourceforge.net/下载了phpseclib-0.3.10

我的PHP版本:PHP 5.2.4

操作系统:CentOS版本6.6

当我运行以下时,我在这一行得到"分段故障" $ssh->login('username', 'password')

<?php
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
include('Net/SSH2.php');
$ssh=new Net_SSH2('servername');
if (!$ssh->login('username', 'password')) {
     exit('Login Failed');
}
echo $ssh->exec('pwd');
?>
Run Code Online (Sandbox Code Playgroud)

我无法找到这个问题的原因.你能帮我找到原因吗?

php ssh centos phpseclib

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

MySQL复制错误(1062)

我是MySQL的新手,经过长时间的搜索,我能够配置基于主从ROW的复制.我认为这是安全的,我不必一次又一次地重新检查它.

但今天当我SHOW SLAVE STATUS;做奴隶时,我发现了以下

无法在表mydatabasename.atable上执行Write_rows事件; 键'PRIMARY'重复输入'174465',Error_code:1062; 处理程序错误HA_ERR_FOUND_DUPP_KEY; 事件的主日志mysql-bin.000004,end_log_pos 60121977

有人可以告诉我,当master没有这样的错误并且两台服务器上的架构相同时,甚至可能会发生这种情况.以及如何修复它以使其再次工作以及如何在将来防止此类事情.

还请告诉我除了这个之外还有什么意想不到的.

mysql replication mysql-error-1062

5
推荐指数
1
解决办法
2万
查看次数

如何在PHP中使用flock?

在我的PHP代码中,我想创建一个读/写代码.因此,将会有一个PHP代码读取或写入的文件.只能有1位作者,或者可以有很多读者,但您可以同时进行书写和阅读.

如何在PHP中完成?我相信你需要使用flock代码?

php

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