【发布时间】:2015-01-06 18:58:18
【问题描述】:
我一直在编写电话簿,但现在遇到了一个问题。
当我输入 ime 和 prezime(英文中的姓名和姓氏)时,我无法获取该人的 broj(英文中的电话号码)。
<?php
mysql_connect ("localhost", "root", "");
mysql_select_db ("imenik");
mysql_set_charset('utf8');
if (isset ($_POST['ime']) && isset ($_POST['prezime'])){
if (!empty ($_POST['ime']) && !empty ($_POST['prezime'])){
$trazeno_ime = $_POST('ime');
$trazeno_prezime = $_POST('prezime');
$query = "SELECT broj_telefona, adresa FROM korisnici WHERE ime='$trazeno_ime' AND prezime='$trazeno_prezime'";
if ($query_run = mysql_query($query)){
if(mysql_num_rows($query_run)==NULL){
echo "Nema korisnika u bazi";
}
else {
$query_row = mysql_fetch_assoc($query_run);
$brojtel = $query_row["broj_telefona"];
$adresa = $query_row["adresa"];
echo "Broj: ".$brojtel."<br>";
echo "Adresa: ".$adresa;
}
}
else {
echo "Unesi podatke";
}
}
}
?>
【问题讨论】:
-
警告您的代码极易受到 sql 注入攻击!
-
在打开
<?php标签error_reporting(E_ALL); ini_set('display_errors', 1);后立即将错误报告添加到文件顶部,看看它是否会产生任何结果。还要将or die(mysql_error())添加到mysql_query()。 -
$_POST('ime')和$_POST('prezime')应该是方括号[],而不是()。 -
请don't use
mysql_*functions。它们不再被维护并且是officially deprecated。改为了解prepared statements,并使用PDO 或MySQLi。 Prevent SQL Injection!