我是php的新手,我在这个网站上看到了一个有同样问题的人的问题,但问题的答案对我的情况没有帮助。我无法使用我的php代码将记录插入到我的数据库中。
这是我的代码,我跟随了Jason Lengstorf的一本名为“PHP For Absolute Begginers”的教科书。如果需要,我可以在评论中附加其余代码,您也可以在源代码下找到此网站上的代码http://www.apress.com/9781430224730。我的问题在哪里以及我应该更新数据库的地方从第66行开始,我注释掉了,以便在else语句旁边显示:
<?php
// Include the functions so we can create a URL
include_once 'functions.inc.php';
include_once 'images.inc.php';
//$e = array();
if($_SERVER['REQUEST_METHOD']=='POST' && $_POST['submit']=='Save Entry'
&& !empty($_POST['page']) && !empty($_POST['title']) && !empty($_POST['entry']))
{
// Create a URL to save in the database
$url = makeUrl($_POST['title']);
if(isset($_FILES['image']['tmp_name'])) //line 16
{
try
{
$img = new ImageHandler("/simple_blog/images/");//not in the textbook
//print_r($_FILES);
//exit;
$img_path = $img->processUploadedImage($_FILES['image']);
echo '<img src="', $img_path,'" /><br />';//This prints out the image
}
catch(Exception $e)
{
die($e->getMessage());
}
}
else
{
$img_path = NULL;
}
// Include database credentials and connect to the database
include_once 'db.inc.php';
$db = new PDO(DB_INFO, DB_USER, DB_PASS);
echo "Image Path: ", $img_path, "<br />";
//exit; in the book but not on the source
// Edit an existing entry
if(!empty($_POST['id']))
{
$sql = "UPDATE entries
SET title=?, entry=?, url=?
WHERE id=?
LIMIT 1";
$stmt = $db->prepare($sql);
$stmt->execute(
array(
$_POST['title'],
$img_path,
$_POST['entry'],
$url,
$_POST['id']
)
);
$stmt->closeCursor();
}
// Create a new entry
else //line 66 problems with the code dont work until after this line
{
//Save the entry into the database
echo"please work this time";
$con = mysqli_connect("localhost","root","","simple_blog");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$page = $_POST['page'];
//var_dump($page);
$page = mysql_real_escape_string($page);
$title = $_POST['title'];
//var_dump($title);
$title = mysql_real_escape_string($title);
$entry = $_POST['entry'];
//var_dump($entry);
$entry = mysql_real_escape_string($entry);
$sql = "INSERT INTO entries(page, title, image, entry, url)
VALUES ('$page', '$title', '$img_path', '$entry', '$url')";
mysqli_query($con, $sql);
mysqli_close($con);
}
// Sanitize the page information for use in the success URL
$page = htmlentities(strip_tags($_POST['page']));
// Send the user to the new entry
echo "hopefully we get here";
header('Location: /simple_blog/'.$page.'/'.$url);
exit;
}
else
{
header('Location: ../');
exit;
}
?>
任何能告诉我为什么我的代码不会发布到数据库的人我很感激帮助,谢谢你。
答案 0 :(得分:1)
您正在混合和匹配 3 不同的数据库库。它们中的NOne彼此兼容。一个的结果不能在另一个中使用,因此以下是平坦的操作错误:
$page = mysql_real_escape_string($page);
^---note the LACK of an i
mysqli_query($con, $sql);
^---note the PRESENCE of an i
所有的数据库代码都是盲目地假设成功和失误,在第一次失败后留下了混乱和破坏的痕迹。如果你有甚至MINIMAL错误处理,你会看到错误:
同样,不推荐使用mysql(不带i),不应再使用它。你开始使用PDO,所以坚持使用PDO。不要混用db库。