我很少编程。我只知道足够危险,因为他们说,我只是组装一些代码来获得我想要的东西。我的代码似乎死于$sql
查询语句。它永远不会返回任何数据。它应该显示存在的13条记录,但它表示没有返回。我猜这是某种语法错误?
<?php
$host = 'myipaddress';
$user = 'myuser';
$pass = 'mypass';
$db = 'mydatabase';
$conn = mysql_connect($host, $user, $pass, $db) or die("Can not connect." . mysql_error());
// Create connection
//$conn = mysqli_connect($host, $user, $pass, $db);
// Check connection
if (!$conn) {
die("Connection failed: ");
}
$sql = "SELECT * FROM pages WHERE pid > '5'";
$result = mysql_query($conn, $sql);
if (mysql_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["pid"]. " - Name: " . $row["title"]. "<br>";
}
} else {
echo "0 results";
}
mysql_close($conn);
?>
答案 0 :(得分:1)
您正在使用mysql_
API,直到您尝试在此处获取行,您正在使用mysqli_
。那不行。
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["pid"]. " - Name: " . $row["title"]. "<br>";
}
Your script is at risk for SQL Injection Attacks.请stop using mysql_*
functions。已在PHP 7中删除These extensions。了解prepared和PDO的MySQLi语句,并考虑使用PDO,it's really pretty easy。
编辑:您的连接( Good Eyes Ralph!)字符串无效,因为mysql_connect()
不接受数据库作为连接的一部分。您必须使用附加功能mysql_select_db()
来选择数据库。
此外,没有必要在mysql_query()
中指定连接链接,但如果这样做,则应该是第二个参数:
$result = mysql_query($sql, $conn);
答案 1 :(得分:1)
你的代码有点不对。
mysql_connect($host, $user, $pass, $db)
mysql_connect()
使用3个参数,第4个参数不符合您的预期。
您需要使用mysql_select_db()
http://php.net/manual/en/function.mysql-select-db.php
然后,
$result = mysql_query($conn, $sql);
连接在mysql_
中排在第二位。
然后你混合了一个不与mysqli_fetch_assoc
库混合的MySQLi函数mysql_
。
所以,只需使用完整的MySQLi库
或PDO:
随着准备好的陈述:
如果查询失败,请检查实际错误:
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。
正如你所看到的,我没有给你一个完整的重写,因为我觉得在“教一个人如何钓鱼......”,将终身喂养,而不是“扔他们一条鱼......”,只喂他们一天(眨眼)。
答案 2 :(得分:0)
您需要使用mysql_fetch_assoc()
代替mysqli_fetch_assoc()
,因为之前的功能基于mysql_*
,而不是mysqli_*
if (mysql_num_rows($result) > 0) {
// output data of each row
while($row = mysql_fetch_assoc($result)) {
echo "id: " . $row["pid"]. " - Name: " . $row["title"]. "<br>";
}
} else {
echo "0 results";
}