我发现俺的表单,不知怎么搞的,这是一个查询的例子,代码如下:表单 searchbook.htm 及 处理文件results.php
<form action="results.php" method="POST">
请选择搜索类型:<br>
<select name="searchtype" >
<option value="author">作者</option>
<option value="title">标题</option>
<option value="isbn">书号</option>
</select>
请输入搜索内容:<br>
<input type="text" name="searchterm"><br>
<input type="submit" value="搜索">
</form>
<?php
$searchtype=$_POST['searchtype'];
$searchterm=$_POST['searchterm'];
$searchterm=trim($searchterm);
if(!$searchtype || !$searchterm)
{
echo '你没有输入搜索信息,请返回并重试!';
exit;
}
if(!get_magic_quotes_gpc())
{
$searchtype=addslashes($searchtype);
$searchtype=addslashes($searchterm);
}
@ $link=mysqli_connect("localhost","root","173223","books");
if(mysqli_connect_errno())
{
echo 'error:不能连接数据库,请稍后再试.';
exit;
}
$query="select * from books where" .$searchtype. "like '%".$searchterm."%'";
$result=mysqli_query($link,$query);
$num_results=mysqli_num_rows($result);
echo '<p>找到书的数量:'.$num_results.'</p>';
for($i=0;$i < $num_results;$i++)
{
$row=mysqli_fetch_assoc($result);
echo '<p><strong>'.($i+1).'.title:';
echo htmlspecialchars(stripslashes($row['title']));
echo '</strong><br>作者:';
echo stripslashes($row['author']);
echo '<br>isbn:';
echo stripslashes($row['isbn']);
echo '<br>price:';
echo stripslashes($row['price']);
echo '</p>';
}
mysqli_free_result($result);
mysqli_close($link);
?>
俺点击提交后,浏览器把result.php 代码打开了,并没有执行它,为何??????
上传文件的例子也是这样,upload.htm 是表单,upload.php是处理文件,不过俺把表单放在upload.php中,就可以运行了。
<form action="results.php" method="POST">
请选择搜索类型:<br>
<select name="searchtype" >
<option value="author">作者</option>
<option value="title">标题</option>
<option value="isbn">书号</option>
</select>
请输入搜索内容:<br>
<input type="text" name="searchterm"><br>
<input type="submit" value="搜索">
</form>
<?php
$searchtype=$_POST['searchtype'];
$searchterm=$_POST['searchterm'];
$searchterm=trim($searchterm);
if(!$searchtype || !$searchterm)
{
echo '你没有输入搜索信息,请返回并重试!';
exit;
}
if(!get_magic_quotes_gpc())
{
$searchtype=addslashes($searchtype);
$searchtype=addslashes($searchterm);
}
@ $link=mysqli_connect("localhost","root","173223","books");
if(mysqli_connect_errno())
{
echo 'error:不能连接数据库,请稍后再试.';
exit;
}
$query="select * from books where" .$searchtype. "like '%".$searchterm."%'";
$result=mysqli_query($link,$query);
$num_results=mysqli_num_rows($result);
echo '<p>找到书的数量:'.$num_results.'</p>';
for($i=0;$i < $num_results;$i++)
{
$row=mysqli_fetch_assoc($result);
echo '<p><strong>'.($i+1).'.title:';
echo htmlspecialchars(stripslashes($row['title']));
echo '</strong><br>作者:';
echo stripslashes($row['author']);
echo '<br>isbn:';
echo stripslashes($row['isbn']);
echo '<br>price:';
echo stripslashes($row['price']);
echo '</p>';
}
mysqli_free_result($result);
mysqli_close($link);
?>
俺点击提交后,浏览器把result.php 代码打开了,并没有执行它,为何??????
上传文件的例子也是这样,upload.htm 是表单,upload.php是处理文件,不过俺把表单放在upload.php中,就可以运行了。
一般都是WEB服务器没有解析PHP
如果你的是Apache的话 建议看下这个http://topic.csdn.net/u/20080507/14/dfad2af2-8895-4c1d-873e-819a7fbfa682.html1、假设WEBServer目录为D:/WebServer,分别安装Apache2、Mysql5到该目录下,同时解压php到该目录
假设WEB目录E:/WEB/PHP
2、复制libmysql到Apache目录下的bin目录,同时添加支持php5的配置
#For PHP 5 do something like this:
PHPIniDir "D:/WebServer/php5"
LoadModule php5_module "D:/WebServer/php5/php5apache2.dll"
(注:php5apache.dll,php5apache2.dll,php5apache2_2.dll;
这三个文件分别对应apache的版本为:Apache1,Apache2.1.*,Apache2.2.*
)AddType application/x-httpd-php .php
<IfModule mod_mime.c>
AddType application/x-httpd-php .php .php3
AddType application/x-httpd-php-source .phps
</IfModule>
3、添加解析名
DirectoryIndex index.htm index.php index.html index.php3 index.html.var
4、添加默认目录
DocumentRoot "E:/WEB/PHP"
<Directory "E:/WEB/PHP">
5、复制php.ini-dist后重命名为php.ini并修改以支持mysql
添加扩展目录extension_dir = "D:\WebServer\php5\ext\"
去掉extension=php_mysql.dll前注释
if(!$searchtype ¦ ¦ !$searchterm)
{
echo '你没有输入搜索信息,请返回并重试!';
exit;
}
把其中的 ¦ ¦ 改成 ||()
找到书的数量:Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in C:\AppServ\www\results.php on line 46
我测试一下,发现mysqli_connect()怎么返回对象型变量,$result=mysqli_query()怎么返回bool型了,这不对劲呀!