Php 从表中选择,其中=$variable
我正在尝试学习PHP/MySql并创建一个简单的“网站” 我在尝试打印Select中的行时遇到问题。我创建了一个带有表“Utenti”的数据库,我想从中选择一个用户名Php 从表中选择,其中=$variable,php,mysql,mysqli,Php,Mysql,Mysqli,我正在尝试学习PHP/MySql并创建一个简单的“网站” 我在尝试打印Select中的行时遇到问题。我创建了一个带有表“Utenti”的数据库,我想从中选择一个用户名 $username='Prova'; // In my database there is a record with username "Prova" require 'connessione_db.php'; // I connect Php to the Database in another file mysqli_s
$username='Prova';
// In my database there is a record with username "Prova"
require 'connessione_db.php';
// I connect Php to the Database in another file
mysqli_select_db ($conn, $dbname);
$checkusername= "SELECT username FROM utenti WHERE username= '$username' ";
// when i write "Where username='Prova' " there aren't problem.
$username_result=mysqli_query($conn,$checkusername);
if (mysqli_num_rows($username_result) > 0) {
while($rows=mysqli_fetch_array($username_result)) {
echo $rows['username'];
}
} else {
echo "no";
}
对于实际代码,结果是“否”,但如果我写:
... where username='Prova'";
结果是“Prova”
我试图更改代码读取用户的解决方案,但没有成功。我试过:
" ... Where username='" .$username. "'";
或
和其他无用的建议。当你在向sql server发送地址时,你使用的是字符串,所以你需要合并两个字符串,这样
用户名=“$username”。“
应该可以正常工作。可能的工作方式类似于”…用户名=“{$username}”
。你应该使用错误.log($checkusername)来调试这个字符串
字符串有什么问题。您当前使用的php版本是什么?最稳定的版本是5.6
或7.3.4
,尽管7+版本并不流行。.username=”$username。“'”
与username='$username'
相同。在这里使用mysqli\u real\u escape\u string()
没有什么区别,因为没有什么可以转义的(尽管您实际上应该使用准备好的语句)。问题中没有任何内容表明,当运行硬编码值和使用完全相同变量的变量时,会得到不同的结果。问题中是否有其他内容没有显示?我添加了整个代码,我只遗漏了以前使用的类似代码,但变量是整数类型,代码确实如此没问题。谢谢您的回答@Yann您应该在sql查询之前使用error.log
,然后在服务器上某个位置的error.log文件中查看它。我试图在代码中添加error\u log:'“error\u log($controllusername)=”选择。。。“'当我试图打开页面时,得到这个错误:致命错误:不能使用函数返回值。@Yann您使用error\u log
作为函数,所以您传递参数(在您的例子中是字符串),所以看起来像这样:error\u log($myString)
。另外,我建议您阅读有关该函数的文章。昨天我使用了该函数,出现了致命错误“无法使用函数返回值”。也许我不理解您的意思……无论如何,感谢您的耐心等待
mysqli_real_escape_string($conn,$username);