شرح - php mysql insert



داتيتيم الآن فب ميسكل(+ بدو البديل) (5)

شكرا للبحث. جميع الإجابات / تعليقات مفيدة حتى صوت.

في فب، يمكنك استخدام نو () مثل هذا:

mysql_query("INSERT INTO tablename (id,      value,      time_created) 
                            VALUES ('{$id}', '{$value}', NOW())");

كيف يمكنني أن أفعل الشيء نفسه في شركة تنمية نفط عمان. عندما ربط مثل هذا، أحصل على خطأ:

$stmt->bindParam(':time_added', NOW(), PDO::PARAM_STR);

هل هو بدو: PARAM_STR؟

https://ffff65535.com


بخلاف نو () أنا أيضا استخدام العمود نوع "الطابع الزمني" وتعيين الافتراضي إلى CURRENT_TIMESTAMP .. لذلك أنا مجرد تمرير أي شيء لهذا الحقل والوقت يتم تعيين تلقائيا. ربما ليس بالضبط ما تبحث عنه.


لا شيء من الإجابات حل المسألة كما أرى ذلك!

لذلك هناك بعض النتائج التي توصلت إليها: لا توجد طريقة كيفية فرض بدو لتمرير استدعاء وظيفة الخلية كقيمة الاستعلام - لذلك ليس هناك طريقة للقيام المجمع بسيطة التي سوف تكون قادرة على استخدام الآن () أو أي وظيفة أخرى مرت القيم. في كل مرة تحتاج شيئا من هذا القبيل، تحتاج يدويا تغيير الاستعلام، وبالتالي فإن استدعاء وظيفة جزء من سلسلة الاستعلام. :-(

أنا أستخدم الدالة التي تختبر القيم المعطاة لوظيفة ميسكل أستخدم وتعديل الاستعلام نفسه، ولكنها ليست حلا جيدا لرأيي ...: -}


قد يكون هذا مفيدا لبعضكم، ربما لا. لقد واجهت نفس المشكلة كما كان أولي سوندرز. أنا جديدة جدا ل فب / ميسكل، والأهم من ذلك بدو. كنت قادرا على حل المشكلة مع ما يلي:

$active = 0;      
$id = NULL;
$query = "INSERT 
        INTO tbl_user(ID_user, firstname, lastname, email, password, active, create_date)
        VALUES (?,?,?,?,?,?,NOW())";

if($stmt=$this->conn->prepare($query)) {
$stmt->bind_param('issssi', $id, $firstname, $lastname, $email, $password, $active);
$stmt->execute();
}

وتخمين ما يعمل! نأمل أن يكون قد ساعد هنا. أي تعليقات هي موضع ترحيب. تحاول ذلك وتقول لي إذا كان يعمل بالنسبة لك، أو إذا كان لديك أي إضافات.


فقط قم بذلك:

mysql_query("INSERT INTO tablename (id, value, time_created)  
             VALUES ('$id', '$value', NOW())");

على الرغم من أن لديك الحق في العمود من نوع. date أو time وحده، لن تعمل إذا كنت أذكر بشكل صحيح. يجب أن يكون datetime أو ربما timestamp ؟

تحذير

يتم إيقاف mysql_* من فب 5.5.0 والإصدارات الأحدث: http://php.net/manual/en/function.mysql-query.php

يرجى استخدام بدو بدلا من ذلك؛ انظر جواب ستيفان جيهريج.


لأن لا أحد قد أجاب صراحة على السؤال (على الرغم من أن الإجابة الصحيحة يمكن استخراجها من التعليقات إلى الإجابة سوندرز أولي )، وأنا سوف تضيف الإجابة الصحيحة من أجل اكتمال.

$stmt = $pdoDb->prepare('INSERT INTO tablename (id, value, time_created) VALUES (:id, :value, NOW())');
// either bind each parameter explicitly 
$stmt->bindParam(':id', $id); // PDOStatement::bindValue() is also possibly
$stmt->bindParam(':value', $value);
$stmt->execute();
// or bind when executing the statement
$stmt->execute(array(
    ':id'    => $id,
    ':value' => $value
));




pdo