我似乎总是遇到将变量放入我的MySQL查询中的问题。
是否有一个很好的教程或有人能告诉我将变量放入语句的正确方法?
我遇到的主要问题是不同类型的引号('或“)。
这是我的问题:
$sql = "INSERT INTO classes (
class_name,
user_id,
professor_name,
class_start,
class_end,
school_period)
VALUES('" . $className
. "','" . $userID
. "','" . $classProfessor
. "','" . $classStart
. "','" . $classEnd
. "','" . $classPeriod . ");)"
. '"';
答案 0 :(得分:4)
<?php
$stmt = $dbh->prepare(
"INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
答案 1 :(得分:1)
请不要尝试自己制作正确的SQL字符串。 这就是SQL Injections的结果。
答案 2 :(得分:-4)
使用准备好的陈述:http://php.net/pdo.prepared-statements 因为这是执行sql的最佳方式