在下面的代码中,我试图连接到我的数据库,从我的表中提取最大ID,然后使用rand()
函数生成一个随机数。代码成功地将我连接到数据库,但是当我尝试调用最大ID时,它不会返回值。
当我尝试回显变量时,它返回SELECT MAX(id)FROM' file'。
<?php
// Connect to the database
$dbLink = new mysqli('localhost', 'username', 'password', 'database');
if(mysqli_connect_errno()) {
die("MySQL connection failed: ". mysqli_connect_error()); }
$amount = "SELECT MAX(id) FROM 'table'";
$rannmr = rand(1, $amount);
// Close the mysql connection
mysqli_close($dbLink);
?>
任何帮助解决这个问题都将受到赞赏。
答案 0 :(得分:2)
当我尝试回显变量时,它返回SELECT MAX(id)FROM&#39; file&#39;。
首先,您使用错误的identifier FROM 'table'
作为单引号。
如果table
确实是表格的名称,请将其包含在反引号中,您的问题会显示file
。
$amount = "SELECT MAX(id) FROM `table`";
无论哪种方式 ,您都不能在表名周围使用引号。您似乎使用file
作为表名。
因此,如果table
只是一个示例而且名为file
,请简单地说,您可以这样做:
$amount = "SELECT MAX(id) FROM `file`";
或
$amount = "SELECT MAX(id) FROM file";
然后, 您还需要使用您未执行的mysqli_query()
进行查询。
$amount = mysqli_query($dbLink,"SELECT MAX(id) FROM `file`");
或面向对象的风格:
$amount = $dbLink->query("SELECT MAX(id) FROM `file`");
if($amount){
echo "Success!";
}else{
die('Error : ('. $dbLink->errno .') '. $dbLink->error);
}
将or die(mysqli_error($dbLink))
用于mysqli_query()
,表示错误。
修改强>
尝试以下方法。您可能需要将$row[0]
和rand(0,$count)
修改为1
,具体取决于列号。
$result = $dbLink->query("SELECT MAX(id) FROM mytable")
while ($row=$result->fetch_row()) { $count = $row[0]; }
$random = rand(0,$count);
echo $random;
答案 1 :(得分:0)
使用它:
$ amount =&#34; SELECT MAX(id)FROM table&#34 ;;
答案 2 :(得分:0)
您忘记执行MySQL查询:
$amount = $dbLink->query("SELECT MAX(id) FROM table")->fetch_assoc();
$rannmr = rand(1, $amount[0]);
答案 3 :(得分:0)
您从未执行过查询,需要更多逻辑
if ($result = mysqli_query($dbLink, "SELECT MAX(id) as amount FROM `table`")) {
printf("Select returned %d rows.\n", mysqli_num_rows($result));
if ($row = mysqli_fetch_assoc($result)) {
$amount = $row['amount'];
$rannmr = rand(1, $amount);
}else{
echo 'no row found';
}
}
mysqli_close($dbLink);
答案 4 :(得分:0)
我似乎没有看到实际执行查询的代码行:
试试这个:使用面向对象的mysqli方法
<?php
// Connect to the database
$dbLink = new mysqli('localhost', 'username', 'password', 'database');
if(mysqli_connect_errno()) {
die("MySQL connection failed: ". mysqli_connect_error()); }
$amount = "SELECT MAX(id) as max_id FROM 'table'";
// Do the actual query :
$run_query = $dbLink->mysql->query($amount);
// Retrieve the values:
$result = $run_query->fetch_array();
// Do the rand function together with the retrieved value
$rannmr = rand(1, $result['max_id']);
// Now you can echo the variable:
echo $rannmr;
// Close the mysql connection
mysqli_close($dbLink);
?>
谢谢!