小编AMB*_*AMB的帖子

在mysqli预处理语句程序样式中获取最后一个插入id的正确方法是什么?

我正在使用mysqli预处理语句在这样的表中插入记录

$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
mysqli_stmt_execute($stmt);

if(mysqli_stmt_affected_rows($stmt) > 0){
//if insert is successful then get the insrted id.


}

/* close statement and connection */
mysqli_stmt_close($stmt);

/* close connection */
mysqli_close($link); …
Run Code Online (Sandbox Code Playgroud)

php mysqli prepared-statement

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

if else条件不能在php中使用数组值

我来到这个奇怪的问题.

我从数组中获取值并尝试比较它但它不起作用.

代码1

<?php
echo $data->item[0]['promocode'].'<br>';
echo $data->item[1]['promocode']; 
?>
Run Code Online (Sandbox Code Playgroud)

输出-1

inhouse
inhouse 
Run Code Online (Sandbox Code Playgroud)

现在让我们尝试使用if else条件,如果两个值相同或不是Code-2

<?php
if(($data->item[0]['promocode']) == ($data->item[1]['promocode'])){
echo "both values are same";
} else {
echo "both values are NOT same";
}?>
Run Code Online (Sandbox Code Playgroud)

输出-2

both values are NOT same 
Run Code Online (Sandbox Code Playgroud)

很奇怪

我不明白我做错了什么.

让我们尝试上面的exaple指定变量Code-3

<?php
$data0=$data->item[0]['promocode'];
$data1=$data->item[1]['promocode'];
if($data0 == $data1){
echo "both values are same";
} else {
echo "both values are NOT same";
}?>
Run Code Online (Sandbox Code Playgroud)

输出-3

both values are NOT same 
Run Code Online (Sandbox Code Playgroud)

我现在正拉着我的头发.


现在硬编码变量中的值

码4

<?
$data0='inhouse';
$data1='inhouse';
if($data0 == $data1){
echo "both …
Run Code Online (Sandbox Code Playgroud)

php if-statement conditional-statements

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

Bootstrap 3 - 如何使用javascript/jquery更改显示为工具提示的超链接标题文本?

我想在单击链接时使用javascript/jquery更改超链接标题.HTML

<a 
        href="javascript:addRss('234');" 
        class="btn btn-success" 
        title="Add content to Personal RSS" 
        id="addRssbtn" 
        data-toggle="tooltip" >
            <i class="fa fa-rss fa-lg"></i> 
        </a>
Run Code Online (Sandbox Code Playgroud)

CSS

@import url("http://netdna.bootstrapcdn.com/bootswatch/3.1.1/cerulean/bootstrap.min.css");
@import url("http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css");
@import url("http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css");
Run Code Online (Sandbox Code Playgroud)

JAVASCRIPT

$(function (){$('[data-toggle="tooltip"]').tooltip({});});


function addRss(hash){
        $("#addRssbtn").attr("class", "btn btn-success active");
        $("#addRssbtn").attr("title", "Remove content from Personal RSS");
        $("#addRssbtn").attr("href", "javascript:unaddRss(" + hash + ");");

//some other post data stuff
};
Run Code Online (Sandbox Code Playgroud)

只有当我不使用时,标题才会改变并显示

data-toggle="tooltip"
Run Code Online (Sandbox Code Playgroud)

那么当点击链接时,如何使data-toggle ="tooltip"将新更改的标题显示为工具提示?

http://jsfiddle.net/h5kKa/

上面的代码正在工作,除了我的电脑上的新工具提示,但没有在jsfiddle.

html javascript css jquery twitter-bootstrap

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

如何在使用nginx下载时动态重命名PDF文件创建重写规则?

我正在网站上工作,我允许用户下载PDF文件.每个PDF文件使用随机哈希名称存储在服务器上,例如.

file
768E1F881783BD61583D64422797632A35B6804C.pdf 
is stored in
/usr/share/nginx/html/contents/7/6/8/E/1/768E1F881783BD61583D64422797632A35B6804C.pdf 
Run Code Online (Sandbox Code Playgroud)

现在我可以尝试给用户直接位置的文件,但下载后的文件名显示为768E1F881783BD61583D64422797632A35B6804C.pdf,我想动态重命名文件,我可以使用这样的PHP来实现这个

<?php
// We'll be outputting a PDF  
header('Content-type: application/pdf');

// It will be called downloaded.pdf  
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// The PDF source is in original.pdf  
readfile('original.pdf');
?> 
Run Code Online (Sandbox Code Playgroud)

ref:重命名pdf文件以便在飞行中下载

但我正在直接购买nginx规则,可以将下载网址重写为路径并在运行时重命名.

我怎么能这样做?

我尝试过这样的事情.

location ^/download-pdf {
    alias   /usr/share/nginx/html/contents;
if ($request_filename ~ ^.*?/[^/]*?_(.*?\..*?)$)
{
    set $filename $1;
}

add_header Content-Disposition 'attachment; filename=$filename';
}
Run Code Online (Sandbox Code Playgroud)

所以,如果我发送用户到这个位置

domain.com/download-pdf/768E1F881783BD61583D64422797632A35B6804C.pdf?title=this.is.test
Run Code Online (Sandbox Code Playgroud)

然后我希望使用标题/文件名作为this.is.test.pdf在用户PC上下载此文件

/usr/share/nginx/html/contents/7/6/8/E/1/768E1F881783BD61583D64422797632A35B6804C.pdf 
Run Code Online (Sandbox Code Playgroud)

这可以仅使用nginx重写规则来完成吗?或者我也需要使用PHP


UPDATE1:

我试过像这样使用它

location ^/download-pdf/([0-9A-F])/([0-9A-F])/([0-9A-F])/([0-9A-F])/([0-9A-F])/([0-9A-F]+).pdf$ {
    alias   /usr/share/nginx/basesite/html/contents;
add_header Content-Disposition 'attachment; …
Run Code Online (Sandbox Code Playgroud)

mod-rewrite rewrite nginx

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

这两个php条件的区别是什么?

我正在尝试检查$ _GET ['id']是否已设置并且是数字否则会导致代码执行死亡.

以下两个代码对我有用,但想知道它们之间的区别是什么?

php条件1

<?php
if(!isset($_GET['id']) || (isset($_GET['id']) && !is_numeric($_GET['id']))) {
die();
}
Run Code Online (Sandbox Code Playgroud)

php条件2

<?php
if(!isset($_GET['id']) || !is_numeric($_GET['id'])) {
die();
}
Run Code Online (Sandbox Code Playgroud)

php conditional-statements

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

PHP-如何像作业队列一样连续运行cron作业

如何像工作队列一样一个接一个地运行cron作业?

我正在从事的项目有将近20个以上的cron作业,其中大多数都是每小时开始,并且非常占用数据库资源,所以我想拥有像工作队列这样的东西,它将一个接一个地开始cron作业,所以不是全部20+作业在新的时间开始时开始,使我的服务器不可用。

是否有类似这样的按构建系统?或将作业队列功能添加到linux cron的任何其他简单方法。?

php linux cron

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

PHP奇怪如果我与当前条件完全相反,那么Else循环输出

我想要做的是检查$_GET['mode']特定页面类型,如果模式是收藏夹,rss或my_uploads页面然后不显示这样的RSS链接

<?php
$mode = $_GET['mode'];
if($mode == 'favorites' || $mode == 'rss' || $mode == 'my_uploads'){
$RSS_link = null;
}else{
$RSS_link = create rss link logic here ;
}
Run Code Online (Sandbox Code Playgroud)

然后,如果链接是这样创建的,则稍后显示指向RSS FEED的链接

<?=(isset($RSS_link)) ? '<a href="'.$RSS_link.'">RSS FEED</a>' : '' ;?>
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,只有在页面不是收藏夹,rss,my_uploads时才会显示RSS FEED链接

但是如果像这样改变RSS创建条件.

<?php

    if($mode != 'favorites' || $mode != 'rss' || $mode != 'my_uploads'){
    $RSS_link = create rss link logic here ;
    }else{
    $RSS_link = null;
    }
Run Code Online (Sandbox Code Playgroud)

即只是将操作符更改为相反并移动if if else to else to if if,

<?=(isset($RSS_link)) ? '<a …
Run Code Online (Sandbox Code Playgroud)

php conditional if-statement

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

为什么我的所有xml站点地图包含50000个链接而不是最后一个额外页面?

我正在尝试使用php + mysqli(mariadb)每天构建站点地图

当我检查谷歌提交的站点地图时,我所能看到的每个站点地图都提交了50k网址.每天3k-4k的新帖子会被添加到数据库中,因此应该有最后一个带有额外URL的站点地图.我做错了什么?

站点地图生成逻辑

<?php
    $subset_count = 50000 ;

    $total_count_query = "SELECT COUNT(*) as total_count FROM links WHERE enabled = '1' " ;

    $total_count = mysqli_query ($conn, $total_count_query);
    $total_count = mysqli_fetch_assoc($total_count);
    $total_count = $total_count['total_count'];
    $total_pages = ceil ($total_count / $subset_count);

    $current_page = 1;
    while($current_page <= $total_pages){
        $from = ($current_page * $subset_count) - $subset_count;

        //$get_mysql_data_query = " SELECT tpb_id, slug FROM links WHERE enabled = '1' ORDER BY tpb_id ASC LIMIT $from , $subset_count"; // this is slow query

        $get_mysql_data_query …
Run Code Online (Sandbox Code Playgroud)

php sitemap mysqli mariadb

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

为什么rtrim删除更多的字符,并给出奇怪的输出?

我试图从string使用中删除最后几个字符rtrim.

我有字符串 "Scryed (download torrent) - TPB"

我想要输出字符串 "Scryed"

例如

$title_t = "Scryed (download torrent) - TPB";

echo ($title_t)  ;
echo "\n";
$title =  ( rtrim ($title_t, "(download torrent) - TPB") );

echo ($title)  ;
Run Code Online (Sandbox Code Playgroud)

Scryed (download torrent) - TPB
Scry
Run Code Online (Sandbox Code Playgroud)

这是为什么 ?预期产量是

Scryed (download torrent) - TPB
Scryed
Run Code Online (Sandbox Code Playgroud)

php character-trimming

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

PHP自定义双向加密和解密,我做错了什么?

我试图将一个数字混淆/加密成字符串,然后再次想要对该字符串进行解复用/解密以获得一个数字.

我不能使用base64或任何其他公共可用的算法,因为生成的哈希将是个人的并且特定于每个用户并且不能与其他用户共享,其用于创建将包含个人哈希的个人URL.

基本上我想从userid生成哈希,因为userid是唯一的并且没有变化.

到目前为止,我已经创建了自定义函数来加密用户ID并从中获取哈希值.

<?php
$base_encryption_array = array(
'0'=>'b76',
'1'=>'d75',
'2'=>'f74',
'3'=>'h73',
'4'=>'j72',
'5'=>'l71',
'6'=>'n70',
'7'=>'p69',
'8'=>'r68',
'9'=>'t67',
'a'=>'v66',
'b'=>'x65',
'c'=>'z64',
'd'=>'a63',
'e'=>'d62',
'f'=>'e61',
'g'=>'h60',
'h'=>'i59',
'i'=>'j58',
'j'=>'g57',
'k'=>'f56',
'l'=>'c55',
'm'=>'b54',
'n'=>'y53',
'o'=>'w52',
'p'=>'u51',
'q'=>'s50',
'r'=>'q49',
's'=>'o48',
't'=>'m47',
'u'=>'k46',
'v'=>'i45',
'w'=>'g44',
'x'=>'e43',
'y'=>'c42',
'z'=>'a41'
);

function my_custom_encode($string){
global $base_encryption_array ;
$string = (string)$string;
$length = strlen($string);
$hash = '';
    for ($i=0; $i<$length; $i++) {
        if(isset($string[$i])){
            $hash .= $base_encryption_array[$string[$i]];
        }
    }
return $hash;
}


function my_custom_decode($hash){
global $base_encryption_array ;
/* this …
Run Code Online (Sandbox Code Playgroud)

php encryption hash cryptography

-4
推荐指数
2
解决办法
2323
查看次数