【发布时间】:2015-02-20 01:20:05
【问题描述】:
当我在 localhost (XAMPP) 中运行该 php 时,我在按下提交按钮“bilgiler sisteme gönderilemedi”之前直接收到该错误消息
所以我无法将信息发送到我的数据库中。
<body>
<form action="insert_pro.php" method="post" enctype="multipart/form-data">
<div class="center_content">
<div class="title_box">Insert New Product</div>
<div class="prod_box_big">
<div class="center_prod_box_big">
<div class="product_img_big"> <!-- <a href="javascript:popImage('images/big_pic.jpg','Some Title')" title="header=[Zoom] body=[ ] fade=[on]"><img src="images/p3.jpg" alt="" border="0" /></a> -->
</div>
<div class="details_big_box">
<!-- TITLE -->
<div class="product_title_big" >Product Title :</div>
<td><input type="text" name="title" required/></td>
<!-- DESCRİPTİON -->
<div class="product_title_big">Description : </div>
<td><textarea name="descrip" cols="21" rows="5"/></textarea></td>
<!-- PRICE -->
<div class="product_title_big">Price :</div>
<td><input type="text" name="price" required/></td>
<!-- PHOTO -->
<div class="product_title_big">Product Photo :</div>
<td><input type="file" name="way" required/></td>
<!-- NOTE -->
<h1>IF YOU FINISHED FILLING INFORMATION OF THE PRODUCT CLICK ADD PRODUCT</h1>
</div>
<!-- BUTTON -->
<input type="submit" name="insert_post" value="ADD PRODUCT">
</div>
</div>
</div>
</form>
</body>
</html>
<?php
$title=$_POST['title'];
$descrip=$_POST['descrip'];
$price=$_POST['price'];
if($price){//veri geldi ise sisteme giriyoruz
//mysqle bağlanıyoruz
$ServerAd="localhost";//server ismini girin localde kurduysanız localhost girin.
$KAd="root";//kullanıcı adı
$KSifre="3306505";//kullanıcı şifresi
$VeriAd="shop";//veritabanı adı
$db=@mysql_connect($ServerAd,$KAd,$KSifre) or die(@mysql_err());//veri tabanına bağlanılıyor
$sec=@mysql_select_db($VeriAd);//veri tabanı seçiliyor
$ekle=mysql_query("insert into product (title,descrip,price) values ($title,$descrip,$price)");//veri tabanına veri giriliyor.
if($ekle)//veri girişi başarılı ise
echo "Sayın Yorumunuz sistemimize iletilmiştir.Teşekkürler";
else//veri girişi hatalı ise
echo "bilgiler sisteme gönderilemedi";
} ?>
【问题讨论】:
-
(有关信息 - 根据 Google 翻译,“bilgiler sisteme gönderilemedi”仅表示“信息未发送到系统”)
-
($title,$descrip,$price)在传递字符串值时需要引用。将or die(mysql_error())添加到mysql_query(),你会看到MySQL抛出的错误。 -
您的查询中有语法错误,因为您没有将变量包装在撇号中。这是另一个问题,OP 没有正确检查返回状态,因此不知道发生了什么。
-
您在此代码中存在 SQL 注入漏洞,最好迁移到更新的数据库库并使用查询参数化。一般来说,最好避免使用
@错误抑制运算符,因为这可能会隐藏问题。