-
November 28th, 2014, 20:20
#1
مشکل در ارسال محتوای Html به فایل Php
این کد صفحه Html است
کد:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!DOCTYPE HTML>
<html>
<body>
<form action="insert.php" method="post">
rrslink: <input type="text" name="rrslink"><br>
sitename: <input type="text" name="sitename"><br>
type: <input type="text" name="cate"><br>
<input type="submit">
</form>
</body>
</html>
و این پایینی هم کد PHP
کد:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
$servername = "localhost";
$username = "Myuser";
$password = "Mypass";
$dbname = "Mydb";
//echo $_POST["rrslink"]."-------->".$_POST["sitename"]."---------->".$_POST["$cate"];
$rrslink=$_POST["rrslink"];
$sitename=$_POST["sitename"];
$cate= intval($_POST["cate"]);
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO rrsTB(rrslink,sitename,type)
VALUES ($rrslink,$sitename,$cate)";
// use exec() because no results are returned
$conn->exec($sql);
echo "New record created successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
هر چقدر سرچ کردم ، فکر کردم نتونستم دلیل این خطا رو پیدا کنم
کد:
INSERT INTO rrsTB(rrslink,sitename,type) VALUES (http://www.tabnak.ir/fa/rss/allnews,tabnak,0)
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '://www.tabnak.ir/fa/rss/allnews,tabnak,0)' at line 4
اولش فکر می کردم چون تابع intval رو برای تبدیل رشته به عدد نزاشتم این خطا رو می ده درست نشد ، بعدش فکر کردم که یکی از فیلدها کلمات کلیدی هست تغییرش دادم بازم درست نشد ، بعدش فکر کردم شاید محتویاتی که ارسال میشن خالی هستن اما چاپشون کردم و دیدم مشکلی نیست و ...
-
-
November 28th, 2014 20:20
# ADS
-
November 28th, 2014, 23:17
#2
پاسخ : مشکل در ارسال محتوای Html به فایل Php
قبل مقدار یه دونه این تابع رو ارسال کنید که تک کوتیشن بذاره واسه مقادیر
کد PHP:
$rrslink = $conn->quote($rrslink );
اینو واسه همه متغییر ها انجام بده و تست کن .
-
تعداد تشکر ها از ms313 به دلیل پست مفید
-
November 28th, 2014, 23:58
#3
پاسخ : مشکل در ارسال محتوای Html به فایل Php

نوشته اصلی توسط
ms313
قبل مقدار یه دونه این تابع رو ارسال کنید که تک کوتیشن بذاره واسه مقادیر
کد PHP:
$rrslink = $conn->quote($rrslink );
اینو واسه همه متغییر ها انجام بده و تست کن .
سلام. با bind نوشتم کد اجرا شد اما کد شما رو هم تست می کنم . فردا میگم نتیجه چی شد تا فرق این روش رو با Bind بدونم
-
-
November 29th, 2014, 12:51
#4
پاسخ : مشکل در ارسال محتوای Html به فایل Php
برای اجرای کئوری می توان از سه نوع متد متفاوت استفاه کرد
کوئری های ساده توسط متد PDO::query اجرا می شنود و یک سی از کلاس PDOStatement را بر می گردانند .
که در اینجا باید از تک کوتیشن استفاده بشه که تو اینجا از تابع PDO::qoute استفاده می کنیم که تا کوتیشنی به کئوری اضافه کنه
روش دوم هم اینی هست که شما استفاده کردین PDO::exec کئوری رو اجرا می کنه ولی تعداد سطر ها رو مهم بر می گردونه یه کمی هم سریعتر از خود query است
حالا متد سوم از همشون بهتر استفاده از متد PDO::prepare هست که در این صورت باید bindValue یا bindParam استفاده کنید که از نظر و سرعت و امنیت هم بهتر هست .
-
تعداد تشکر ها از ms313 به دلیل پست مفید