我刚刚开始掌握PHP并且已经完成了一些MySql与它的接口,如下所示。我不能让这个脚本工作,因为它部分来自一本书,我想我有些错了。这让我疯了!
任何帮助都将非常感谢&感谢。
<?php
require_once "login.php";
$db_server = mysql_connect($db_hostname,$db_username,$db_password);
if(!$db_server)
{
die("Couldn't connect to MySql" . mysql_error());
}
mysql_select_db($db_database,$db_server)
or die("Sorry, couldn't connect to database" . mysql_error());
if(isset($_POST['delete']) && isset($_POST['isbn']))
{
$isbn = get_post('isbn');
$query="DELETE FROM classics WHERE isbn='$isbn'";
if(!mysql_query($query,$db_server)){
echo "Delete failed: $query ". mysql_error() . "<br/><br/>";
}
if(isset($_POST['author']) &&
isset($_POST['title']) &&
isset($_POST['category']) &&
isset($_POST['year']) &&
isset($_POST['isbn'])){
$author = get_post('author');
$title= get_post('title');
$category = get_post('category');
$year = get_post('year');
$isbn = get_post('isbn');
$query="INSERT INTO classics VALUES".
"('$author','$title','$category','$year','$isbn')";
if(!mysql_query($query,$db_server)){
echo "Update content of table failed: ". mysql_error() . "<br/><br/>";
}
}
echo <<<_SOQ
<form action="sqltest.php" method="post">
<pre>
Author <input type="text" name="author"/>
Title <input type="text" name="title"/>
Category <input type="text" name="category"/>
Year <input type="text" name="year"/>
ISBN <input type="text" name="isbn"/>
<input type="submit" value="ADD RECORD"/>
</pre>
</form>
_SOQ;
$query = "SELECT* FROM classics";
$result = mysql_query($query);
if(!$result) die("Database access failed: " .mysql_error());
$rows = mysql_num_rows($result);
for($i=0;$i<$rows;++$i){
$row = mysql_fetch_row($query);
echo <<<_SOQ
<pre>
Author $row[0];
Title $row[1];
Category $row[2];
Year: $row[3];
ISBN: $row[4];
</pre>
<form action="sqltest.php" method="post">
<input type="hidden" name="delete" value="yes"/>
<input type="hidden" name="isbn" value="$row[4]"/>
<input type="submit" value="DELETE RECORD"/>
</form>
_SOQ;
}
mysql_close($db_server);
function get_post($var){
return mysql_real_escape_string($_POST[$var]);
}
&GT?;
答案 0 :(得分:1)
我认为你需要一个额外的结束支撑:
if (isset($_POST['delete']) && isset($_POST['isbn'])) {
$isbn = get_post('isbn');
$query="DELETE FROM classics WHERE isbn='$isbn'";
if(!mysql_query($query,$db_server)){
echo "Delete failed: $query ". mysql_error() . "<br/><br/>";
}
}
我已经添加了第二个右括号 - 现在可以编译吗?
编辑添加:
你的关闭HEREDOC引用(_SOQ
)都是用空格缩进的 - 你不能在带有结束标记的行的开头有任何空格。
答案 1 :(得分:1)
看起来你没有右括号:
if(isset($_POST['delete']) && isset($_POST['isbn']))
答案 2 :(得分:0)
非常感谢大家昨天的帮助。我现在设法对此脚本进行排序。各种拼写错误和轻微错误都是问题所在,主要是获得了解。再次感谢。
<?php
require_once "login.php";
$db_server = mysql_connect($db_hostname,$db_username,$db_password);
if(!$db_server) die("Sorry, MySql connection failure: " . mysql_error());
mysql_select_db($db_database, $db_server)
or die("Sorry, DB connection failure: " . mysql_error());
/*Code to test for deletion of a field of the table*/
if(isset($_POST['delete']) && isset($_POST['isbn']))
{
$isbn = get_post('isbn');
$query = "DELETE FROM classics WHERE isbn='$isbn'";
if(!mysql_query($query)) die("Sorry, deletion failed: $query" . "<br/><br/>");
}
/*Code to enter fields of the table*/
if(isset($_POST['author']) &&
isset($_POST['title']) &&
isset($_POST['category']) &&
isset($_POST['year']) &&
isset($_POST['isbn']))
{
$author = get_post('author');
$title = get_post('title');
$category = get_post('category');
$year = get_post('year');
$isbn = get_post('isbn');
$query = "INSERT INTO classics VALUES".
"('$author','$title','$category','$year','$isbn')";
if(!mysql_query($query)) die("Update: $query failed" . mysql_error());
}
echo<<<_SOQ
<form action="sqltest.php" method="post"><pre>
Author: <input type="text" name="author"/>
Title: <input type="text" name="title"/>
Category: <input type="text" name="category"/>
Year: <input type="text" name="year"/>
ISBN: <input type="text" name="isbn"/>
<input type="submit" value="ADD RECORD"/>
</pre></form>
_SOQ;
$query = "SELECT* FROM classics";
$result = mysql_query($query);
if(!$result) die("Sorry couldn't get the resource" . mysql_error());
$rows = mysql_num_rows($result);
for($j=0;$j<$rows;++$j){
$row = mysql_fetch_row($result);
echo<<<_SOQ
<pre>
Author $row[0]
Title $row[1]
Category $row[2]
Year $row[3]
ISBN $row[4]
<form action="sqltest.php" method="post"><pre>
<input type="hidden" name="delete" value="yes"/>
<input type="hidden" name="isbn" value="$row[4]"/>
<input type="submit" value="DELETE RECORD"/>
</pre></form>
_SOQ; }
mysql_close($db_server);
function get_post($var){
return mysql_real_escape_string($_POST[$var]);
}
&GT;