Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 尝试切换到pdo时,随机图像脚本不会';不要总是开火_Php_Mysql_Random_Pdo - Fatal编程技术网

Php 尝试切换到pdo时,随机图像脚本不会';不要总是开火

Php 尝试切换到pdo时,随机图像脚本不会';不要总是开火,php,mysql,random,pdo,Php,Mysql,Random,Pdo,我正试图转换到PDO。虽然我很快就遇到了一些问题,但我一直无法解决的一个问题是我的随机图像脚本。我以前有一篇关于这个不起作用的帖子,它与需要选择MAX(id-6)的selectmax(id)有关。以前的问题是,我得到的是随机数的随机图像,而不是6张 现在的问题是,有时我会得到六张随机图像,有时一张也没有。我希望有人能看看我的脚本,看看他们是否能发现任何问题 谢谢有时候只需要一双眼睛: <?php $passed_cat = mysql_real_escape_string($_GET['c

我正试图转换到PDO。虽然我很快就遇到了一些问题,但我一直无法解决的一个问题是我的随机图像脚本。我以前有一篇关于这个不起作用的帖子,它与需要选择MAX(id-6)的
selectmax(id)有关。以前的问题是,我得到的是随机数的随机图像,而不是6张

现在的问题是,有时我会得到六张随机图像,有时一张也没有。我希望有人能看看我的脚本,看看他们是否能发现任何问题

谢谢有时候只需要一双眼睛:

<?php
$passed_cat = mysql_real_escape_string($_GET['cat']);
$passed_sub_cat = mysql_real_escape_string($_GET['sub_cat']);

include ('../../connection.php');

$related_images = "SELECT *,r1.id as main_id 
                   FROM images AS r1 
                   JOIN 
                   (
                        SELECT ROUND(RAND() * (SELECT MAX(id-6) 
                                               FROM images)) AS id
                    ) AS r2 
                    WHERE r1.id >= r2.id 
                        AND public_approved='Approved'
                        AND category = :category
                        AND sub_category = :sub_category
                    ORDER BY r1.id ASC 
                        LIMIT 6
                            OFFSET 20";

$q = $conn->prepare($related_images);
$q->execute(array(
':category' => $passed_cat,
':sub_category' => $passed_sub_cat));


if(!$q)
{
    die("Query failed due to: ". $conn->errorInfo());
}

$q->setFetchMode(PDO::FETCH_BOTH);

while($row = $q->fetch())
{
echo "<div style='float:left; margin:2px;' >";
echo '<a href="sub_page.php?cat='. $passed_cat .'&sub_cat='. $passed_sub_cat .'&id='. $row['main_id'] .'"><img src="../../files/small/thumb0_'. $row['item_name'] . '.' . $row['file_extension'] . '" style="width:96px;" border="0"></a>';
echo "</div>";
}
?>
mysql\u real\u escape\u string()不是必需的,如果不使用mysql\u connect()可能会导致问题

mysql\u real\u escape\u字符串(“”,*link\u标识符)

  • MySQL连接。如果未指定链接标识符,则 假设mysql_connect()打开的最后一个链接。如果没有这样的链接 找到时,它将尝试创建一个,就像调用mysql_connect()一样 没有争论。如果未找到或建立连接,则会显示E_警告 将生成级别错误
只需将$\u GET vars传递到执行数组:

$q->execute(array(':category'=>$_GET['cat'], ':sub_category'=>$_GET['sub_cat']));

尝试并测试了您在这里所说的内容,但是错误仍然存在。如果您在phpmyadmin中检查了您的查询,并且该查询始终有效,也不相关,但将localhost更改为127.0.0.1,它将加快PDO速度。感谢提示,当在phpmyadmin中它不总是有效时。有时它会返回一个空集,我会尝试重新开始,看看是否可以让它工作。谢谢
$q->execute(array(':category'=>$_GET['cat'], ':sub_category'=>$_GET['sub_cat']));