任何人都可以解释为什么我从下面的脚本中得不到任何结果:
当我在phpmyadmin中运行查询时它会返回正确的结果(id
),但运行我的下面的php脚本吧echo's out "No row found!";
<?php
if(isset($_SESSION['word'])) {
$word = $_SESSION['word']."<br>";
echo $word;
$query = ("SELECT id FROM customer WHERE mobil = $word");
if (!$query) {
die('Invalid query: ' . mysql_error());
}
else {
$results = mysql_query($query);
while ($row = mysql_fetch_assoc($results)) {
echo '<pre>', print_r($row), '<pre>';
}
if (!$row) {
echo "No row found!";
}
}
}
?>
答案 0 :(得分:2)
您的查询无效,应该是这样的:
$query = mysql_query("YOUR QUERY");
此外,您不应该使用Mysql_,因为这已被弃用,很快就会删除。 请改用PDO或MySQLI。您可以在这里找到更多信息:
答案 1 :(得分:0)
试试这个
$results = mysqli_query($query);
if(mysqli_num_rows($results)>0){
while ($row = mysqli_fetch_assoc($results)) {
echo '<pre>', print_r($row), '<pre>';
}
else{
echo "No row found!";
}
}
答案 2 :(得分:0)
试试这个:
$query = ('SELECT id FROM `customer` WHERE mobil = "$word" ');
答案 3 :(得分:0)
应该是,
<?php
require_once("db_connect.php");
if(isset($_SESSION['word'])) {
$word = $_SESSION['word']."<br>"; //Getting word here
$query = "SELECT id FROM customer WHERE mobil = $word";
$result = mysqli_query($db,$query); //$db holds the database connection
if (!$result)
{
die('Invalid query: ' . mysqli_error($db));
}
else
{
$result_rows = mysqli_num_rows($result); //Getting the no. of rows
if($result_rows!=0) // If any record present,the below code executes
{
while ($row = mysqli_fetch_assoc($result))
{
echo '<pre>', print_r($row), '<pre>';
}
}
else
{
echo "No rows found"; // If no record found,this prints.
}
}
}
?>
数据库连接(db_connect.php):
$db = mysqli_connect("localhost","username","password","database_name");
注意 : Mysql 已弃用。您应该使用 Mysqli 或 PDO 。
答案 4 :(得分:0)
您的查询错误。
改变这个:
$query = ("SELECT id FROM customer WHERE mobil = $word");
要:
$query = ("SELECT id FROM customer WHERE mobil = '".$word."'");
但您的代码存在许多安全问题。
答案 5 :(得分:0)
更新和解决 我的上面的脚本运行正常,感谢@CodingAnt(谁问:这个mobil字段包含哪些数据类型?) - 我检查了我的数据库,结果发现mobil设置为VARCHAR而不是INT。将其更改为INT,现在一切正常。